分块上传
https://github.com/peinhu/aetherupload-laravel 分块上传插件
原理使用浏览器对文件的分块slice()方法,后端php使用file_put_contents() 的FILE_APPEND
的追加写入数据功能,或者fopen() 函数的 a+
模式
直接上传
适合局域网项目
php-fpm配置文件修改
request_terminate_timeout = 120 设置单个请求的超时中止时间。该选项可能会对 php.ini 设置中的 'max_execution_time' 因为某些特殊原因没有中止运行的脚本有用。
php.ini配置修改
upload_max_filesize = 2048M 最大文件大小
post_max_size = 2048M post传输最大文件大小
max_execution_time = 600 php脚本最大运行时间
max_input_time = 600 脚本解析输入数据(类似 POST 和 GET)允许的最大时间,单位是秒。 它从接收所有数据到开始执行脚本进行测量的。
nginx配置修改
client_max_body_size 4096m; 客户端请求的最大主体内容
fastcgi_connect_timeout 600 指定nginx与后端fastcgi server连接超时时间
fastcgi_send_timeout 600 指定nginx向后端传送请求超时时间(指已完成两次握手后向fastcgi传送请求超时时间)
fastcgi_read_timeout 600 指定nginx接受后端fastcgi响应请求超时时间 (指已完成两次握手后nginx接受fastcgi响应请求超时时间)