1、php.ini 的配置
post_max_size = 500M #post 提交时的大小限制,这里设置为500M。
upload_max_filesize = 500M #文件上传的最大限制。
max_input_time = 600 #最大输入时间,是指脚本解析输入数据(类似 POST 和 GET)允许的最大时间
max_execution_time = 300 #最大执行时间,是指php上传脚本的最大执行时间
post_max_size和upload_max_filesize 这两个参数很好理解,上传大小的限制吗,很容易就想的到,那么max_input_time和max_execution_time是怎么回事呢?是因为网络传输的原因,当上传文件比较大时,网络带宽又比较小,导致上传时间超出了默认的输入时间和脚本执行时间,这时web服务器就会报错退出脚本程序,上传失败。所以在上传文件时,不仅要考虑文件大小的限制还需要考虑上传时间的因素。
2、NGINX 的配置
这里介绍一下常用的web服务器的配置,nginx会在默认配置中设置了输入内容的大小,如果上传的文件超出了这个大小,就需要调整大小以满足上传需求。
client_max_body_size 1024M; 上传文件大小限制
sendfile on; 设置为on表示启动高效传输文件的模式
keepalive_timeout 1800;保持连接的时间,默认65s
当然同php的配置一样,都需要设置时长,如果在网络较差,或者上行带宽比较小的情况下,还是需要适当的调整一下保持连接的时长。
3、代码中文件上传大小的限制
的很多的后台框架中,或者一些上传组件中都会默认的设置一些上传的限制,在代码中需要修改上传限制,以适应文件上传大小的需求。
通过以上设置可以解决大部分的文件上传的问题,如果你不是使用nginx web服务器,可以考虑相关服务器的限制配置,如果还会提示文件大小超出限制,可以通过分步调试确认限制的位置,调整相应的设置,来解决文件上传的限制。