上一篇 下一篇 分享链接 返回 返回顶部

PHP 网站上传文件大小限制的修改方法

发布人:用户运营 | 723 发布时间:2小时前 阅读量:1

该文章由AI生成,仅为SEO优化测试,相关内容不保证准确!!!

引言

PHP 网站上传大文件失败,报错可能是“文件超出大小”“413 Request Entity Too Large”或直接静默失败。原因是上传链路有三层限制,任何一层卡住都会失败。本文讲清三层各自的含义与修改方法。

一、三层限制分别在哪

① PHP 层(php.ini):upload_max_filesize 控制单个文件上限,post_max_size 控制整个 POST 请求上限——后者必须 ≥ 前者,否则即使单文件够小也会被拒。② nginx 层:client_max_body_size 默认 1M,超过直接返回 413,请求根本到不了 PHP。③ PHP-FPM/脚本层:max_execution_time、max_input_time 限制处理时长,大文件上传慢时也会超时失败。排查时先看报错类型:413 是 nginx 拦的;$_FILES error 码 1/2 是 php.ini 拦的;错误码 3 表示文件只传了一部分。

二、修改方法

php.ini(CLI 与 FPM 是两份配置,改 /www/server/php/72/etc/php.ini 这个 FPM 用的):upload_max_filesize=100M、post_max_size=120M、max_execution_time=300、max_input_time=300,改完 systemctl reload php-fpm 生效(reload 即可,不必 restart)。nginx 的站点 server 块加:client_max_body_size 120M;(可放 http/server/location 任意层级,就近生效),nginx -t && nginx -s reload。宝塔面板用户也可在“软件商店 → PHP 设置”与站点配置里改,效果相同。

三、验证与常见坑

验证:php -i | grep upload_max_filesize 确认 CLI 值;写一个 phpinfo() 页面或用 php -r "echo ini_get('upload_max_filesize');" 确认 FPM 的值——注意 CLI 和 FPM 配置可能不同,网站走的是 FPM。常见坑:① memory_limit 也要 ≥ post_max_size(某些上传实现会把文件读进内存);② 用了 CDN/反代时,CDN 层也有上传大小上限,需要在 CDN 控制台同步调大;③ 分块上传(如 WebUploader)可以绕开所有限制,大文件场景(视频、备份)更推荐分块方案,同时设置更长的超时。

总结

上传失败的排查口诀:先看报错是 413 还是 PHP error 码 → nginx 的 client_max_body_size → php.ini 的 upload/post 两项 → 超时三项 → CDN 层。三层一起改对,上传限制才算真正放开。

目录结构
全文
微信公众号 微信公众号
抖音官方账号 抖音官方账号
CSDN官方账号 CSDN官方账号
经营主体身份码 经营主体身份码
电子邮箱: admin@2v8.cn

本页面部分展示信息可能存在偏差/错误