天涯家园HomeH天涯家园HomeH

- 网络编程,php编编程,php代码,WEB精品软件资源分享学习家园

php上传文件失败处理

一 检查 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


在使用php上传文件时需要对响应时间和上传的大小进行限制,修改php.ini中的下述文件即可


upload_max_filesize  上传的最大文件

post_max_size  上传的最大文件

max_execution_time  修改为0表示无超时,一直等待



二检查 nginx 的设置
nginx上传大文件解决办法

1、client_body_buffer_size设置的大点,这是基于速度的考虑,如果因为设置的过小,导致上传的文件老要写磁盘,那速度就太慢了。

2、client_body_temp_path 路径要有可写权限,这个是明显的错误了,改正了就好

3、client_max_body_size 设置上传文件的最大值,这个是基于安全的考虑,我们认为正常用户不会或者基本不会上传太大的文件。

可以设置为client_max_body_size 100m; 或者按照自己的业务来设置这个值。

相关文章