tp5 redis 上传大文件到68%就中断了

发布于 2022-09-13 00:01:46 字数 1677 浏览 30 评论 0

100M 以上文件,8分片上传了4个就中断了

#定义键名
            
            @set_time_limit(5 * 60);
            
            #设置超时300秒
            
            $redis_key = $this->file_name;
            
            
            #扩展名
            $file_name  = explode('.', $this->file_name);
            
            #碎片文件
            $save_tmp_name = $this->file_path.$this->fileMd5.'/'.$file_name[0]."_".$this->blobNum;
            
            //文件名拼接成第几块
            
            $this->touchDir();
            
            
            #临时文件
            
            $tmp_file_path = $_FILES['file']['tmp_name']; 
            
            #移动具体位置
            
            move_uploaded_file($tmp_file_path, $save_tmp_name);
            
            #进入redis 环节
            
            $store =Cache::store('redis');
            
            #一个小时后过期

   $store =Cache::store('redis');
            
            #一个小时后过期
            
            $store->Expire($redis_key, 600);
            
            #获取chunk值
            
            $order = $this->chunk_index;
            
            #增加有序集合
            
            $store->zAdd($redis_key, $order, $save_tmp_name);
        
            #获取集合数量
            $uploaded_count = $store->zCard($redis_key);
            
            
            $all_pian = $store->zRange($redis_key, 0, -1);
            
            
            Log::record('all_pian:' . var_export($all_pian, true), 'info');
            
           sleep(120);
           

主要分片上传不完,只能上传一部分。延时只能保证100m 内文件分片上传完成,超过100m 就不行了,补充下,上传限制配置 都已经配置500m 不存在哪个方面的问题

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

断爱 2022-09-20 00:01:46

是不是php脚本执行时间超时了,你在tp5入口文件顶部加上
ini_set("max_execution_time", "0");或者set_time_limit(0);
这种不限制php脚本执行时间,如果这样上传成功的话,你就应该考虑一下上传的方式了。或者限制上传的大小。然后一般正常商用项目,上传都是走对象存储服务,不会上传到服务器来占用服务器带宽的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文