飘在云端

东西南北,海角天涯

· 前端 · · 62次浏览

可道云超大文件上传优化

环境:可道云 v1.53.03

请输入图片描述


主要是两侧

Web 前端服务器,如 Nginx

允许客户端请求的最大单个请求体大小,设置为 0,表示没有限制

client_max_body_size 0;

还有反向代理的一些参数
通过反向代理上传文件给后端时,禁止写入临时文件,而是实时边收边发给上游后端

proxy_request_buffering off;

PHP 侧

需要改部分源码,把
ini_setset_time_limit 设置的相关值, 也得改了,主要是这几个文件,/app/function/common.function.php,/app/sdks/getID3/getid3/getid3.php,/config/config.php

/app/function/common.function.php 修改如下
约 251 行,function set_timeout($timeout=172800){ 修改为 function set_timeout($timeout=0){
约 259 行, @ini_set('memory_limit', '4000M');//4G; 修改为 @ini_set('memory_limit', '-1');//4G;

/config/config.php,修改如下
约在 11-14 行,改为

@set_time_limit(0);//60min pathInfoMuti,search,upload,download...
@ini_set("max_execution_time",0);//3600
@ini_set('request_terminate_timeout', 0);
@ini_set('memory_limit','-1');//

/app/sdks/getID3/getid3/getid3.php,修改 约 378 行的
public $memory_limit = 0;public $memory_limit = -1;


  • 文件上传大小限制相关,全部设为 0,表示无限制
 post_max_size = 0
 upload_max_filesize = 0
  • PHP 内存限制、脚本执行时间限制
// 脚本被解析器中止之前允许的最大执行时间,单位秒, 0 表示无限制
max_execution_time = 0
// 脚本解析输入数据(类似 POST 和 GET)允许的最大时间,0 表示无限制
max_input_time = 0
// 允许脚本分配的最大内存量,-1 表示禁用内存限制
memory_limit = -1

最后重启 Nginx / PHP,实时生效

评论 (0条)