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

 更新时间:2015年02月11日 12:16:35   作者:傲雪星枫  
这篇文章主要介绍了php发送与接收流文件的方法,实例分析了php针对流文件的常见操作技巧,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本文实例讲述了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程序设计有所帮助。

相关文章

  • php命名空间举例介绍使用方法

    php命名空间举例介绍使用方法

    从广义上来说,命名空间是一种封装事物的方法,在很多地方都可以见到这种抽象概念。PHP中命名空间(namespace)是在 PHP5.3 中加入的,如果你了解过 C++ 的话,那命名空间就不算什么新事物了。不过命名空间在 PHP 当中还是相当重要的
    2022-09-09
  • 关于PHP二进制流 逐bit的低位在前算法(详解)

    关于PHP二进制流 逐bit的低位在前算法(详解)

    本篇文章是对PHP二进制流逐bit的低位在前算法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php指定长度分割字符串str_split函数用法示例

    php指定长度分割字符串str_split函数用法示例

    这篇文章主要介绍了php指定长度分割字符串str_split函数用法,结合实例形式分析了str_split函数分割字符串的具体操作技巧,需要的朋友可以参考下
    2017-01-01
  • php输出含有“#”字符串的方法

    php输出含有“#”字符串的方法

    这篇文章主要介绍了php输出含有“#”字符串的方法,涉及php字符串的遍历与转换相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2017-01-01
  • 理解PHP5中static和const关键字的区别

    理解PHP5中static和const关键字的区别

    理解PHP5中static和const关键字的区别...
    2007-03-03
  • php魔术变量用法实例详解

    php魔术变量用法实例详解

    这篇文章主要介绍了php魔术变量用法,以实例形式详细分析了php中常见的各种魔术变量的具体用法,并补充说明了php中的魔术方法,具有不错的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • PHP抽象类 介绍

    PHP抽象类 介绍

    对于PHP程序员来说,最为难掌握的一点要数PHP抽象类应用这一块知识点。作为一个新手其实也还没有到要用面向对象的知识去编程,但以后进行开发,使用类进行封装或者使用接口之类,把程序进行各种模块式的开发,这当然是必然的
    2012-06-06
  • PHP学习笔记之一

    PHP学习笔记之一

    本系列适合有其他编程语言经验而PHP经验为0的人快速参考入门。
    2011-01-01
  • 无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)

    无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)

    今天帮客户配置服务器的时候运行phpmyadmin出现了“无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装。”的错误,经排查原来是权限问题,大家可以参考下面的方法解决
    2012-05-05
  • php实现建立多层级目录的方法

    php实现建立多层级目录的方法

    这篇文章主要介绍了php实现建立多层级目录的方法,需要的朋友可以参考下
    2014-07-07

最新评论

?


http://www.vxiaotou.com