首页 > Web开发 > 详细

PHP中filesystem的使用

时间:2019-04-30 18:42:14      阅读:157      评论:0      收藏:0      [点我收藏+]

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接口中。

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

 技术分享图片

 

 

 

 

 

PHP中filesystem的使用

原文:https://www.cnblogs.com/hld123/p/10797580.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!