一 检查 PHP的设置
1、打开php.ini
2、查找post_max_size:(修改上传大小限制)
表单提交最大数值,此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的默认为8m,设置为自己需要的值,此参数建议要设置比upload_max_filesize大一些
3、查找file uploads:(修改上传开关限制)
是否允许通过http上传文件的开关,确认file_uploads = on
4、查找upload_tmp_dir:(修改上传临时文件限制)
文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹如果系统报错提示有“xxx临时目录xxx”的话,这个目录就需要你来设置一个有效目录,没报错就不用管
5、查找upload_max_filesize:(修改上传大小限制)
允许上传文件大小的最大值,默认为2m,设置为自己需要的值此参数建议不要超过post_max_size值,因为它受控于post_max_size值 (就算upload_max_filesize设置了1g,而post_max_size只设置了2m时,大于2m的文件照样传不上去,因为它受控于post_max_size值)
6、如果要上传大于8m的文件,还需要对下面的参数也进行设置:(修改上传时间限制)
查找max_execution_time = 600 ;每个php页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个php页面接收数据所需的最大时间,默认60秒
memory_limit = 8m ;每个php页面所需要的最大内存,默认8m
7 在使用php上传文件时需要对响应时间和上传的大小进行限制,修改php.ini中的下述文件即可
二检查 nginx 的设置
nginx上传大文件解决办法
1、client_body_buffer_size设置的大点,这是基于速度的考虑,如果因为设置的过小,导致上传的文件老要写磁盘,那速度就太慢了。
2、client_body_temp_path 路径要有可写权限,这个是明显的错误了,改正了就好
3、client_max_body_size 设置上传文件的最大值,这个是基于安全的考虑,我们认为正常用户不会或者基本不会上传太大的文件。
可以设置为client_max_body_size 100m; 或者按照自己的业务来设置这个值。