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程序设计有所帮助。