如何配置ThinkPHP中的文件上传大小限制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计896个文字,预计阅读时间需要4分钟。
如果在ThinkPHP项目中遇到文件上传失败、提示Post size exceeded或直接返回413错误,通常不是框架本身的问题,而是底层PHP与Web服务器对请求大小的限制不同步所致。以下是一些解决步骤:
一、调整PHP核心上传参数
PHP在解析HTTP请求前会强制校验两个关键配置:upload_max_filesize控制单文件上限,post_max_size控制整个POST请求体(含所有字段+文件)总大小。二者必须同时调大,且post_max_size必须大于等于upload_max_filesize,否则即使只传一个文件也会被截断。
1、定位并编辑php.ini文件,查找以下两行配置项。
2、将upload_max_filesize设为预期最大单文件大小,例如:upload_max_filesize = 20M。
立即学习“PHP免费学习笔记(深入)”;
3、将post_max_size设为略大值以容纳表单其他字段,例如:post_max_size = 25M。
4、保存后执行systemctl restart php-fpm(或对应版本命令),确保服务完全重启。
5、访问phpinfo()页面,确认两项数值已更新生效,不可仅依赖配置文件修改。
二、配置Nginx请求体限制
Nginx在将请求转发给PHP前,独立执行client_max_body_size检查。默认值仅为1MB,若未显式配置,超限请求将直接返回413错误,PHP层根本无法介入处理。
1、进入Nginx站点配置文件,定位到对应server块或location块内。
本文共计896个文字,预计阅读时间需要4分钟。
如果在ThinkPHP项目中遇到文件上传失败、提示Post size exceeded或直接返回413错误,通常不是框架本身的问题,而是底层PHP与Web服务器对请求大小的限制不同步所致。以下是一些解决步骤:
一、调整PHP核心上传参数
PHP在解析HTTP请求前会强制校验两个关键配置:upload_max_filesize控制单文件上限,post_max_size控制整个POST请求体(含所有字段+文件)总大小。二者必须同时调大,且post_max_size必须大于等于upload_max_filesize,否则即使只传一个文件也会被截断。
1、定位并编辑php.ini文件,查找以下两行配置项。
2、将upload_max_filesize设为预期最大单文件大小,例如:upload_max_filesize = 20M。
立即学习“PHP免费学习笔记(深入)”;
3、将post_max_size设为略大值以容纳表单其他字段,例如:post_max_size = 25M。
4、保存后执行systemctl restart php-fpm(或对应版本命令),确保服务完全重启。
5、访问phpinfo()页面,确认两项数值已更新生效,不可仅依赖配置文件修改。
二、配置Nginx请求体限制
Nginx在将请求转发给PHP前,独立执行client_max_body_size检查。默认值仅为1MB,若未显式配置,超限请求将直接返回413错误,PHP层根本无法介入处理。
1、进入Nginx站点配置文件,定位到对应server块或location块内。

