正确设置PHP中允许上传文件大小的教程

在PHP中是可自由设置上传文件的大小的,但很多新手看了网上一些教程后,发现修改了upload_max_filesize的值后,上传较大文件的时候会导致上传失败。本教程将详细说明如何正确设置PHP中允许上传文件的大小。

通过php.ini设置

首先需找到php.ini文件所在路径,如果不确定,可以通过PHPinfo查看。

例如创建一个phpinfo.php文件,内容为:

<?php
phpinfo();
?>

将该文件上传至主机根目录或子目录,然后在浏览器中访问该文件URL,示例:https://www.zhanzhangb.com/phpinfo.php,可以看到类似以下内容,找到Loaded Configuration File的值,如下示例:

通过phpinfo查看php.ini路径
通过phpinfo查看php.ini路径

在php.ini文件里查找:

upload_max_filesize
post_max_size
memory_limit
max_execution_time

upload_max_filesize就是上传附件大小,修改这个参数,例如改为:upload_max_filesize = 128M

post_max_size是post大小,设置值必须大于等于upload_max_filesize。

memory_limit是执行内存,一般设置64M或者128M,如果upload_max_filesize与upload_max_filesize设置太大,而memory_limit的值设置太小,则可能会造成上传大文件的时候失败。

max_execution_time 执行超时时间,单位是秒,修改为0表示无限制,该值也会影响上传文件,如上传文件较大,应相应增加max_execution_time的值。

推荐设置:

upload_max_filesize = 128M 
post_max_size = 128M 
memory_limit = 256M
max_execution_time =300

注意:如果服务器的内存较少,memory_limit的值可改为64M-128M。

设置完成后,需重启PHP方可生效,可通过phpinfo检查设置的值是否生效。

宝塔面板用户设置

如果是宝塔面板用户,可以直接在宝塔面板的PHP设置中修改以上内容,示例:

宝塔面板中设置PHP参数
宝塔面板中设置PHP参数

发表评论