本文实例讲述了php发送与接收流文件的方法。分享给大家供大家参考。具体如下:
sendStreamFile.php 把文件以流的形式发送receiveStreamFile.php 接收流文件并保存到本地
sendStreamFile.php文件:
<?php /** php 发送流文件 * @param String $url 接收的路径 * @param String $file 要发送的文件 * @return boolean */ function sendStreamFile($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{ return false; } } $ret = sendStreamFile("http://localhost/receiveStreamFile.php","send.txt");var_dump($ret); ?>
receiveStreamFile.php文件:
]<?php /** php 接收流文件 * @param String $file 接收后保存的文件名 * @return boolean */ function receiveStreamFile($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); echo json_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程序设计有所帮助。