php发送与接收流文件的方法
本文实例讲述了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);
版权声明:本文为yaochanwangaun原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。