tp5 redis 上传大文件到68%就中断了
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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是不是php脚本执行时间超时了,你在tp5入口文件顶部加上
ini_set("max_execution_time", "0");或者set_time_limit(0);
这种不限制php脚本执行时间,如果这样上传成功的话,你就应该考虑一下上传的方式了。或者限制上传的大小。然后一般正常商用项目,上传都是走对象存储服务,不会上传到服务器来占用服务器带宽的