商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > PHP如何设置脚本最大上传大小_PHP设置脚本最大上传大小方法【配置】

PHP如何设置脚本最大上传大小_PHP设置脚本最大上传大小方法【配置】

  发布于2026-07-08 阅读(0)

扫一扫,手机访问

你是不是也遇到过上传大文件时被无情拒绝的尴尬?系统提示文件超出大小限制,多半是PHP配置里的上传限制没调对。别急,这事儿其实不复杂,按下面的步骤来,基本都能搞定。

PHP如何设置脚本最大上传大小_PHP设置脚本最大上传大小方法【配置】

先说结论:解决PHP文件上传超限,核心就五步——第一步改php.ini里的三个参数;第二步如果用的是Apache,可以用.htaccess局部覆盖;第三步实在不行就在代码里用ini_set临时调;第四步别忘了Nginx那边也有个client_max_body_size要配;第五步,在PHP代码层面再做个校验,双重保险。下面一个一个说。

一、修改php.ini配置文件

这是最直接、最彻底的办法——直接改PHP的全局配置,适用于你有服务器管理权限的场景。找到php.ini的位置,Linux Apache下通常在/etc/php/8.1/apache2/php.ini,Windows phpStudy下在C:\phpStudy\php\php-8.1\php.ini。进去之后需要盯紧三个参数,它们必须协同工作:

  • upload_max_filesize:直接设成你需要的上限,比如upload_max_filesize = 64M
  • post_max_size:这个值必须不小于upload_max_filesize,因为POST请求除了文件还有别的字段。稳妥起见,设得大一点,比如post_max_size = 72M
  • memory_limit:确保PHP内存够用,至少大于post_max_size,比如memory_limit = 256M

改完之后保存,别忘了重启Web服务器(Apache或Nginx),配置才会生效。

二、使用.htaccess临时覆盖(仅限Apache)

如果你无法直接编辑php.ini,但服务器给.htaccess的写入权限,那可以用这个办法——对特定目录下的PHP脚本单独设限。在网站根目录或目标上传目录下创建或编辑.htaccess文件,写入两行:

php_value upload_max_filesize 64M
php_value post_max_size 72M

注意:这只对Apache + mod_php模式有效,PHP-FPM是不认的。保存后无需重启,规则立即生效。

三、运行时动态设置(ini_set)

这个方法更适合多租户或动态策略的场景——在PHP脚本执行初期用ini_set函数临时修改配置,仅对当前请求生命周期有效。在文件上传逻辑的PHP文件开头加上:

ini_set('upload_max_filesize', '64M');
ini_set('post_max_size', '72M');

需要留个心眼:如果服务器开启了safe_mode,或者用的是CGI模式,这个函数可能被禁用。另外它不能超过php.ini里设定的硬性上限,所以如果原php.ini里上限只有2M,你这里设64M也没用。

四、检查Nginx相关配置(针对Nginx服务器

如果你的Web服务器是Nginx,那它自己也有个限制——client_max_body_size,默认可能只有1M。如果不调这个,PHP那边改得再大,请求在Nginx层就被拦截了。打开Nginx配置文件(通常是nginx.conf或站点配置文件),在server块或location块里加上:

client_max_body_size 64M;

保存后执行sudo nginx -s reload重载配置即可。

五、PHP代码层校验与增强控制

即使前面所有配置都调好了,也建议在接收文件前再做一个显式的大小判断——一来可以防止配置意外绕过,二来能给用户更友好的错误提示。检查$_FILES['file']['size'],单位是字节。比如:

if ($_FILES['file']['size'] > 67108864) {
    die('文件超出64MB限制');
}

同时别忘了验证$_FILES['file']['error'] === UPLOAD_ERR_OK,排除上传中断等异常情况。这样里外都封死,上传限制的问题才算真正解决。

本文转载于:https://www.php.cn/faq/2422115.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注