文件流
来源:互联网 发布:java 发送邮件带图片 编辑:程序博客网 时间:2024/06/05 07:41
什么是流?流,简单来说就是建立在面向对象基础上的一种抽象的处理数据的工具。在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的,而不用关心流的另一头数据的真正流向。流不但可以处理文件,还可以处理动态内存、网络数据等多种数据形式。如果你对流的操作非常熟练,在程序中利用流的方便性,写起程序会大大提高效率的。
########################################################################
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/fdipzone/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));
- ?>
########################################################################
这个还真不是一二句话能说得明白的,只能说一下我个人理解,所谓文件流,是指在通过HTTP协议POST或GET数据的过程中,传输一方直接以二进制流方式传送某个文件的内容,这样就形成了一条文件流,接收方只要将接收的流内容直接写进文件就可.
0 0
- 文件流 打开文件
- 文件流操作文件
- 文件操作--文件流
- 文件,流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- 文件流
- [Cocos2d-html5] 使用Ant一步一步压缩混淆Cocos2d-html5游戏
- 设计模式的六大原则
- 多个closure引用同一个变量,并且可能需要mut borrow
- Timer和TimerTask详解
- C#导出List数据到xml文件[附源码]
- 文件流
- 《C++程序设计案例教程》笔记之多态
- VMware Workstation 11序列号
- Normal Distribute
- 目前制作游戏太忙,没时间做spritekit教程,暂时搁浅
- Find a sorted subsequence of size 3 three in linear time
- java中date,string,timestamp,时间戳的相互转换大全
- Android 使用createBitmap时出现异常 width and height must be > 0
- ios 团队开发-UITabbarController整合多个storyboard的controllers