您的位置:首页 >PHP限制上传大小设置方法
发布于2026-02-24 阅读(0)
扫一扫,手机访问
PHP 文件上传需同步调整 PHP 的 upload_max_filesize、post_max_size 和 max_execution_time 三个参数,并配置 Nginx 的 client_max_body_size 或 Apache 的 .htaccess,否则仍会因任一环节限制导致 413 错误或上传中断。

PHP 动态网站上传文件大小受限,不是单靠改一个配置就能生效的,必须同时调整 PHP 层和 Web 服务器层的多个参数,否则会出现“明明改了 upload_max_filesize 却还是传不过 2MB”的情况。
只改 upload_max_filesize 是无效的。它只控制单个文件上限,但还受另外两个参数制约:
post_max_size:必须 ≥ upload_max_filesize,否则整个 POST 请求(含文件+表单字段)会被截断,报错通常是“413 Request Entity Too Large”或 PHP 返回空 $_FILESmax_execution_time 和 max_input_time:大文件上传耗时长,超时会导致中断,建议设为 300 或更高(单位秒)ini_set() 在脚本里动态设置,仅对当前请求生效,且不适用于已启动的上传(PHP 启动时就读取 ini 值),所以必须改 php.ini 或 .htaccess(Apache)/ php_admin_value(Nginx + php-fpm)Nginx 默认限制客户端请求体大小为 1MB,即使 PHP 全放开,也会在 Nginx 层直接返回 413 Request Entity Too Large:
server 或 location 块中显式设置 client_max_body_size,例如:client_max_body_size 50M;
post_max_size,否则 Nginx 拦截后根本不会把请求发给 PHPsudo nginx -s reload,不是 restart如果不能改主配置,可用 .htaccess 覆盖部分 PHP 设置,但有前提:
AllowOverride All 或至少包含 Options 和 FileInfophp_value upload_max_filesize 50M
php_value post_max_size 52M
php_value max_execution_time 300
php_value 不支持在 CGI/FastCGI 模式下使用(常见于共享主机),此时会 500 错误;必须确认 PHP 运行模式(用 php_sapi_name() 查)真正卡住上传的往往不是 PHP 本身,而是 Nginx/Apache 的请求体拦截、反向代理超时(如 Cloudflare 默认 100MB 但有 100 秒超时)、甚至浏览器自身对长连接的处理。调大参数后务必验证整条链路——从浏览器选择文件、到 Nginx 接收、PHP 解析、再到你代码里的 $_FILES 是否完整,缺一不可。
上一篇:Golang依赖审计方法汇总
下一篇:C++用户定义字面量怎么用
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9