Laravel中的PostTooLargeException异常错误

7tofc5zh  于 2022-11-18  发布在  其他
关注(0)|答案(6)|浏览(157)

当我尝试上传超过2 MB的文件时,我得到post too large异常,我已经尝试了所有的方法,比如在php.ini文件中增加post_max_size和max_upload_size,但是我仍然得到同样的错误。当我在validatepostsize. php文件中注解处理函数时,它显示令牌不匹配错误:

vwhgwdsa

vwhgwdsa1#

我认为您可以在php.ini文件中检查以下参数,如:

upload_max_filesize = 40m
post_max_size = 50m

重新启动服务器后,如(apache
希望这对你有用!

vxqlmq5t

vxqlmq5t2#

首先,检查您的PHP版本。

php -v

下面的命令将打印服务器正在使用的php.ini文件的路径。

php -i | grep php.ini

下一个

sudo nano /etc/php/7.4/cli/php.ini

默认情况下,post_max_sizeupload_max_filesizememory_limit得值分别为8M2M128M.
搜索这些变量并更改其值,同时确保大小遵循与默认值相同的比率。
请参见以下示例:

post_max_size = 2G
upload_max_filesize = 1G
memory_limit = 3G

对于“负载很重的站点”,安装并运行FPM是很有用的。

sudo apt install php7.4-fpm -y
sudo service php7.4-fpm start

最后,重新启动Web服务器。

sudo service apache2 restart
c86crjj0

c86crjj03#

其中一个问题是Laravel PHP artisan serve本地开发服务器使用PHP/CLI下的php.ini,而不是PHP/apache 2下的php.ini
因此,如果您在使用PHP artisan serve进行开发时遇到这个问题,请获取/etc/php[version]/cli文件夹下的php.ini

qnakjoqk

qnakjoqk4#

只是更改php.ini中的参数然后重新启动apache并不是最好的解决方案:

upload_max_filesize = 128M
post_max_size = 128m

//or whatever value you think is right

重新启动apache,如下所示:sudo service apache2 restart
对我来说最好的方法是使用laravel的Error Handling捕获PostTooLargeExceptionError Handling
有关如何使用Error Handling捕获PostTooLargeException的详细答案,您可以在此线程中看到我的答案:线程与完整的答案。我挣扎了2天之前,我完全想出如何实现这一点。
快乐编码!

d8tt03nd

d8tt03nd5#

实际上,我正在为同一个问题寻找相同的答案。我发现这个问题可以通过编辑.htaccess文件来解决。
在文件中添加以下代码。

php_value upload_max_filesize 50M
php_value post_max_size 50M

以上两行将解决此问题,但如果您添加了这么多大小,则下面的行给予将使您避免将来出现类似执行时间过期等问题。

php_value max_input_time 120
php_value max_execution_time 120
ua4mk5z4

ua4mk5z46#

为了更准确地验证,我建议以字节为单位设置值,因为50 MB是52428800B,实际上是52 MB,而不是5000000B。
.htaccess示例:

php_value upload_max_filesize 50000000B // 50M
php_value post_max_size 50000000B // 50M

相关问题