当前位置:首页 > PHP教程 > php应用 > 列表

php发送与接收流文件的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-11 11:43:53 浏览: 评论:0 

这篇文章主要介绍了php发送与接收流文件的方法,实例分析了php针对流文件的常见操作技巧,需要的朋友可以参考下

本文实例讲述了php发送与接收流文件的方法。分享给大家供大家参考。具体如下:

sendStreamFile.php 把文件以流的形式发送

receiveStreamFile.php 接收流文件并保存到本地

sendStreamFile.php文件:

  1. <?php  
  2. /** php 发送流文件  
  3. * @param String $url 接收的路径  
  4. * @param String $file 要发送的文件  
  5. * @return boolean  
  6. */ 
  7. function sendStreamFile($url$file){  
  8.   if(file_exists($file)){  
  9.     $opts = array(  
  10.       'http' => array(  
  11.         'method' => 'POST',  
  12.         'header' => 'content-type:application/x-www-form-urlencoded',  
  13.         'content' => file_get_contents($file)  
  14.       )  
  15.     );  
  16.     $context = stream_context_create($opts);  
  17.     $response = file_get_contents($url, false, $context);  
  18.     $ret = json_decode($response, true);  
  19.     return $ret['success'];  
  20.   }else{  
  21.     return false;  
  22.   }  
  23. }  
  24. $ret = sendStreamFile('http://localhost/receiveStreamFile.php','send.txt'); 
  25. var_dump($ret);  
  26. ?> 

receiveStreamFile.php文件:

  1. <?php  
  2. /** php 接收流文件  
  3. * @param String $file 接收后保存的文件名  
  4. * @return boolean  
  5. */ 
  6. function receiveStreamFile($receiveFile){  
  7.   $streamData = isset($GLOBALS['HTTP_RAW_POST_DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] : '';  
  8.    
  9.   if(emptyempty($streamData)){  
  10.     $streamData = file_get_contents('php://input');  
  11.   }  
  12.    
  13.   if($streamData!=''){  
  14.     $ret = file_put_contents($receiveFile$streamData, true); 
  15.   }else{  
  16.     $ret = false;  
  17.   }  
  18.   return $ret;  
  19. }  
  20. $receiveFile = 'receive.txt';  
  21. $ret = receiveStreamFile($receiveFile);  
  22. echo json_encode(array('success'=>(bool)$ret));  
  23. ?> 

下面是其它网友的补充

PHP读取流文件

  1. $filepath = 'http://www.vip.com/down'
  2. $fp = fopen($filepath,"r"); 
  3. Header("Content-type: application/octet-stream"); 
  4. Header("Accept-Ranges: bytes"); 
  5. Header("Content-Disposition: attachment; filename=xxx.pdf"); 
  6. $buffer = 1024; 
  7. while (!feof($fp)) { 
  8. $file_con = fread($fp,$buffer); 
  9.   echo $file_con
  10. fclose($fp);

Tags: php发送流文件 php接收流文件

分享到: