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/fdipzone/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. if(empty($streamData)){
  9. $streamData = file_get_contents('php://input');
  10. }
  11. if($streamData!=''){
  12. $ret = file_put_contents($receiveFile, $streamData, true);
  13. }else{
  14. $ret = false;
  15. }
  16. return $ret;
  17. }
  18. $receiveFile = 'receive.txt';
  19. $ret = receiveStreamFile($receiveFile);
  20. echo json_encode(array('success'=>(bool)$ret));
  21. ?>

php发送 与接收流文件的更多相关文章

  1. PHP 发送与接收流文件

    http://blog.csdn.net/fdipzone/article/details/40098169

  2. 如何通过Socket TCP发送并接收一个文件?

    一.小结 1.大包发小包收,只发一次. 2.发时把文件扩展名,文件长度也随同一起发送,方便接收端接收时另存为正确的文件类型,并判断是否已经接收完毕. 如果不一起发送,分为文件扩展名,文件长度,文件内容 ...

  3. java 模拟http请求,通过流(stream)的方式,发送json数据和文件

    发送端: /** * 以流的方式 * 发送文件和json对象 * * @return */ public static String doPostFileStreamAndJsonObj(String ...

  4. Socket传输大文件(发送与接收)

    下载 Client using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...

  5. 需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP

    需求:过滤下面这个网页里共723行 校对中里 行数为两位数的 行 并设置sz和rz在Windows和Linux之间发送和接收文件不用搭FTP 需求:过滤下面这个网页里共723行 校对中里 行数为两位数 ...

  6. 文件转移 互联网组成 路由器 分组交换 交换机 冲突域 网卡 数据帧的发送与接收会带来CPU开销 CPU中断 双网卡切换

    https://zh.wikipedia.org/zh-cn/网段 在以太网环境中,一个网段其实也就是一个冲突域(碰撞域).同一网段中的设备共享(包括通过集线器等设备中转连接)同一物理总线,在这一总线 ...

  7. DICOM医学图像处理:DIMSE消息发送与接收“大同小异”之DCMTK fo-dicom mDCM

    背景: 从DICOM网络传输一文开始,相继介绍了C-ECHO.C-FIND.C-STORE.C-MOVE等DIMSE-C服务的简单实现,博文中的代码给出的实例都是基于fo-dicom库来实现的,原因只 ...

  8. Spring Cloud (十五)Stream 入门、主要概念与自定义消息发送与接收

    前言 不写随笔的日子仿佛就是什么都没有产出一般--上节说到要学Spring Cloud Bus,这里发现按照官方文档的顺序反而会更好些,因为不必去后边的章节去为当前章节去打基础,所以我们先学习Spri ...

  9. JavaMail发送和接收邮件API(详解)

    一.JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供的JavaMa ...

随机推荐

  1. Linux命令 swap:内存交换空间

    swap 内存交换空间的概念 swap使用上的限制

  2. CSS学习之浮动

    首先要知道,div是块级元素,在页面中独占一行,自上而下排列,也就是传说中的流.如下图: 可以看出,即使div1的宽度很小,页面中一行可以容下div1和div2,div2也不会排在div1后边,因为d ...

  3. git上传GitHub并预览

  4. tornado web开发

      tornado是python的web框架,这里简单记录下利用tornado怎么实现文件的上传,其中web.py上传功能类似. 直接用代码说明: 代码来自:http://my.oschina.net ...

  5. Android ScrollView嵌套ScrollView滚动的问题解决办法

    引用:http://mengsina.iteye.com/blog/1707464 http://fenglog.com/article.asp?id=449 Android ScrollView嵌套 ...

  6. iOS - 获取安装所有App的Bundle ID

    先导入#import <objc/runtime.h>头文件 使用runtime获取设备上的所有app的bundle id // Class LSApplicationWorkspace_ ...

  7. MYSQL中GROUP BY不包含所有的非聚合字段时的注意事项

    本文导读:在MYSQL中使用GROUP BY分组时,我们可以select 多个非聚合字段,但是这些字段不在GROUP BY中,这样的SQL查询在SQL SERVER.ORACLE中是不合理的,且会报错 ...

  8. JavaEE JSP 学习笔记

    一.JSP简介 1.也是SUN公司推出的开发动态web资源的技术,属于JavaEE技术之一.由于原理上是Servlet, 所以JSP/Servlet在一起. 二.HTML.Servlet和JSP 1. ...

  9. 2018C语言第二次作业

    一.学习内容总结 1.指针是一种数据类型,同样占有空间,其存储的是内存地址: 2.定义指针变量要在变量名之前加“*”字符表示: 3.“&”是取地址运算符,“*”是间接运算符: (注:声名和使用 ...

  10. 2018牛客网暑期ACM多校训练营(第三场) H - Diff-prime Pairs - [欧拉筛法求素数]

    题目链接:https://www.nowcoder.com/acm/contest/141/H 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K ...