解决PHP上传文件提示文件过大的问题

在PHP下上传文件时有时会报413 Request Entity Too Large错误,即上传的文件太大,要解决这个问题,需要同时修改nginx和php的配置。

nginx配置

nginx默认上传的文件最大是1M,太小了。

修改conf文件,加一行

client_max_body_size 10m;  # 改为你需要的大小

这一行可以放location块中,也可以放在http块中,还可以放在server块中。

三者设置的区别在于,作用域不同:

  1. 设置到http内,控制全局nginx所有请求报文(附件)大小;
  2. 设置到server内,控制该server的所有请求报文(附件)大小;
  3. 设置到location内,只控制满足该路由规则的请求报文(附件)大小。

一般来说,放在server块中比较合适。

PHP配置

需要修改php.ini中的两项配置

post_max_size = 10M
upload_max_filesize = 10M

跟nginx中的文件大小保持一致即可。

修改完后重启nginx和php-fpm服务。

其它

如果所使用的框架对上传的文件也做了限制,需要一并修改。

比如FastAdmin框架,需要修改application/extra/upload.php中的maxsize配置。

Leave a Comment

豫ICP备19001387号-1