Laravel 5.4文件上传报错:POST内容长度超限,修改php.ini仍无效
嘿,我之前也踩过这个一模一样的坑!明明改了php.ini还重启了WAMP,结果错误提示纹丝不动?别慌,大概率是你没找对要修改的php.ini文件,或者重启方式不对。下面是一步步排查解决的方法:
先确认你改对了php.ini文件
WAMP环境下通常会有多个php.ini副本,比如PHP安装目录下的、Apache目录下的,而真正生效的只有一个。最快的确认方法是:在你的Laravel项目里新建一个php文件,内容写<?php phpinfo(); ?>,然后在浏览器访问这个文件,找到Loaded Configuration File这一项,它显示的路径就是当前PHP正在使用的配置文件路径,你必须修改这个文件才有用!检查并修改三个关键配置项
打开刚才找到的php.ini文件,找到以下三个配置,调整数值(这里以允许20M文件为例):upload_max_filesize = 20M:单个上传文件的最大限制post_max_size = 25M:POST请求的总数据量限制,必须比upload_max_filesize大,因为POST里除了文件还有其他表单数据memory_limit = 32M:PHP脚本的内存限制,上传大文件时需要足够的内存处理
彻底重启WAMP服务
别只点Apache的重启!右键WAMP托盘图标,选择「Restart All Services」,或者干脆关掉WAMP再重新打开,确保配置文件的修改被加载。验证配置是否生效
重启后再访问刚才的phpinfo页面,搜索upload_max_filesize、post_max_size这两个项,看看数值是不是已经变成你设置的大小了。如果还是旧值,说明你还是改错了文件,回到第一步重新确认路径。
另外补充一点:Laravel应用层也有文件大小验证规则,比如在表单请求类里的rules()方法中设置'file' => 'required|file|max:20480'(20480对应20M),不过这是应用层的限制,得先把PHP的配置问题解决了,这个才会生效。
内容的提问来源于stack exchange,提问作者Robgogo

