PHP上传最大限制的注意事项

来源:互联网 发布:免费群发软件 编辑:程序博客网 时间:2024/05/02 04:20

在做批量上传图片的时候出现一个问题,一次性上传多张图片后,总是不成功,单独上传1,2张图片可以成功,后来找原因发现原来php.ini中upload_max_filesize为4M,而我上传的图片每张有1M,我想可能就是upload_max_filesize的问题,后来我就修改成了50M,以为就可以了,但是上传还是不成功,然后我就打开firebug查看post请求,发现了一段文字,firebug达到了post请求大小限制,后来才知道原来还有一个参数要设置下,那就是post_max_size,我也修改成50M后,只要上传的图片总量不超过50M都能成功.

如果说没有权限修改php.ini怎么办,有人说用ini_set()函数,但是upload_max_filesize,post_max_size,是不可以用这个函数在脚本中直接设置的,详见http://www.oscphp.com/Archive/14.html

下面总结了一下上传大文件往往需要修改的地方:
打开php.ini,首先找到
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
区域,有影响文件上传的以下几个参数:
file_uploads   =   on   ;是否允许通过HTTP上传文件的开关。默认为ON即是开
upload_tmp_dir   ;文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
upload_max_filesize   =   8m   ;望文生意,即允许上传文件大小的最大值。默认为2M

在如下
;;;;;;;;;;;;;;;;;
; Data Handling ;
;;;;;;;;;;;;;;;;;
区域,还有一项:
post_max_size   =   8m ;指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M
一般地,设置好上述四个参数后,上传<=8M的文件是不成问题,在网络正常的情况下。
但如果要上传>8M的大体积文件,只设置上述四项还一定能行的通。除非你的网络真有100M/S的上传高速,否则你还得关心关心下面的参数:

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time   =   600 ;每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time = 600 ;每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit   =   8m   ;每个PHP页面所吃掉的最大内存,默认8M

0 0
原创粉丝点击