php发送与接收流文件的方法
本文实例讲述了php发送与接收流文件的方法。分享给大家供大家参考。具体如下:
sendStreamFile.php把文件以流的形式发送
receiveStreamFile.php接收流文件并保存到本地
sendStreamFile.php文件:
<?php /**php发送流文件 *@paramString$url接收的路径 *@paramString$file要发送的文件 *@returnboolean */ functionsendStreamFile($url,$file){ if(file_exists($file)){ $opts=array( 'http'=>array( 'method'=>'POST', 'header'=>'content-type:application/x-www-form-urlencoded', 'content'=>file_get_contents($file) ) ); $context=stream_context_create($opts); $response=file_get_contents($url,false,$context); $ret=json_decode($response,true); return$ret['success']; }else{ returnfalse; } } $ret=sendStreamFile('http://localhost/receiveStreamFile.php','send.txt'); var_dump($ret); ?>
receiveStreamFile.php文件:
]<?php /**php接收流文件 *@paramString$file接收后保存的文件名 *@returnboolean */ functionreceiveStreamFile($receiveFile){ $streamData=isset($GLOBALS['HTTP_RAW_POST_DATA'])?$GLOBALS['HTTP_RAW_POST_DATA']:''; if(empty($streamData)){ $streamData=file_get_contents('php://input'); } if($streamData!=''){ $ret=file_put_contents($receiveFile,$streamData,true); }else{ $ret=false; } return$ret; } $receiveFile='receive.txt'; $ret=receiveStreamFile($receiveFile); echojson_encode(array('success'=>(bool)$ret)); ?>
下面是其它网友的补充
PHP读取流文件
$filepath='http://www.vip.com/down'; $fp=fopen($filepath,"r"); Header("Content-type:application/octet-stream"); Header("Accept-Ranges:bytes"); Header("Content-Disposition:attachment;filename=xxx.pdf"); $buffer=1024; while(!feof($fp)){ $file_con=fread($fp,$buffer); echo$file_con; } fclose($fp);
希望本文所述对大家的php程序设计有所帮助。