PHP中filesystem的使用

最近在用腾讯云COS上传对象的时候,涉及到文件流的使用

参考文档:https://cloud.tencent.com/document/product/436/12266

此处是将fopen打开的资源句柄,直接作为参数传到body中。

问题:上传大文件时,需要将其分块传到本地服务器,再由服务器拼接后,作为body参数传入进去,如果不考虑往新的文件里面追加写入的话,作为文件流如何处理?

方案:使用redis队列存入数据流,然后当前文件全部写入后,

$tempName = $video->getPathname();

Redis::rpush($key.'stream',file_get_contents($tempName));

//往redis里面写入文件流

$filename="/saas/wwwroot/api_server/upload/".$key.'file.'.$extension;

if (!file_exists($filename)){

touch($filename);

chmod($filename,0777);

}

//文件分块全部传输到本地服务器

if ($redis_size==$totalSize){

$stream=Redis::lrange($key.'stream',0,-1);

     $fp = fopen ( $filename, 'w+' );

     $fs = 0;  //写入的文件大小

     foreach ($stream as $v){   

         $fs += fwrite($fp,$v);  

    }

 fseek($fp,0);    //把文件指针指向文件的开头

//继续业务处理。。。

}

然后将这个$fp作为body对应的参数值传入腾讯云upload接口中。

下图是我在项目中的代码部分截取,作为参考:

最新文章

  1. 一段拼装sql的小代码
  2. SignalR入门之基本介绍
  3. C#编程利器之二:结构与枚举(Structure and enumeration)【转】
  4. ubuntu 12.04版本出现界面终端打开broken pipe,但是tty1这些可以。
  5. POJ 1276 (多重背包) Cash Machine
  6. 《STL源码剖析》笔记
  7. 再跟SQL谈一谈--基础篇
  8. 设计模式多线程方面之Thread-Per-Message 模式
  9. nopcommerce 开源商城
  10. 前端模块化:RequireJS(转)
  11. brk和mmap(转)
  12. op.go
  13. EF Core利用Scaffold从根据数据库生成代码
  14. 个人经验~ 利用5.7的sys库更好的排查问题
  15. date('Y-m-d H:i:s',time()) 与 date('Y-m-d h:i:s',time())区别是什么
  16. luogu P4385 [COCI2009]Dvapravca
  17. python常用字符串处理(转)
  18. MySQL笔记(2)---InnoDB存储引擎
  19. [机器学习] 训练集(train set) 验证集(validation set) 测试集(test set)
  20. WebService注解总结

热门文章

  1. PHP半年了,已经可以独立支撑项目,几点心得记录
  2. linux下的shell运算(加、减、乘、除
  3. 修复PlatformToolsets丢失问题(为VS2013以上版本安装VC90,VC100编译器)
  4. centos环境下创建数据库和表的方法
  5. PHP5.2 $arr = [] 初始化数组出现问题
  6. 大数据技术之_19_Spark学习_05_Spark GraphX 应用解析 + Spark GraphX 概述、解析 + 计算模式 + Pregel API + 图算法参考代码 + PageRank 实例
  7. Linux 基础教程 29-tcpdump命令-1
  8. Android-自定义控件之事件分发
  9. 结对项目— 词频统计2(语言C++)
  10. Android 属性动画实现一个简单的PopupWindow