默认的PHP安装,是只允许上传最大为2M的文件。如果您想增加,这可能会涉及到php.ini, .htaccess和脚本本身的设置。这里只以更改php.ini为例说明。
在php.ini需要更改的参数是:
- file_uploads
- upload_max_filesize
- max_input_time
- memory_limit
- max_execution_time
- post_max_size
首先,应该确保是允许上传,即没有禁用file_uploads。
upload_max_filesize与post_max_size
多数情况下,浏览者是使用POST方式来上传文件,即大家熟悉的“multipart/form-data”。通常,post_max_size是大于upload_max_filesize的值。因为post_max_size除了上传文件本身外还有一些请求操作等数据。还有一点应该注意的是,upload_max_filesize是一次上传的所有文件大小总和。
当然,php的文档也提到可以在HTML表单中设置MAX_UPLOAD_LIMIT来达到类似的目的,但有些浏览器并不理会这个设值。
memory_limit
在php对从用户POST过来的数据进行处理的时候,需要占用内存资源。一般情况下,不要将这个值设置得过大,因为如果占用过多的资源,会影响到整个服务器的运行性能。设置这个值之前,请确保php在编译的时候是使用了enable-memory-limit参数。
max_execution_time and max_input_time
脚本需要时间来接受处理上传的数据,设置该值,使在一定的时间后,会出现上传超时的提示。一般情况下,如果需要上传几M的文件,需要为该值设置到较大。
注意事项:因为Apache的配置文件可能会对LimitRequestBody进行设置,这会限制POST的数据大小。如可能会限制在512Kb以内。
在相同的目的,Perl与Java可能会比Php处理者更好。如Perl可以接受32M大小的文件。至于您选择Php还是其他语言,当然是萝卜青菜各有所爱了。
具体设置,在php.ini中增加或者修改以下语句:具体数值可以自己设置,但是post的数值要大于upload,要么upload设置不会起作用。
file_uploads = On ;这个一般默认就是打开的,可以不写
upload_max_filesize=8M
post_max_size=10M
如果你找到了file_uploads = On ,upload_max_filesiz e=8M,post_max_size=10M语句,后面不带“;”,这个“;”你不用加了,原来文件了,这些语句都有,只要把设定值改一下就可以了。不过不要改的太大,不然容易超资源。