当我尝试上传超过2 MB的文件时,我得到post too large异常,我已经尝试了所有的方法,比如在php.ini文件中增加post_max_size和max_upload_size,但是我仍然得到同样的错误。当我在validatepostsize. php文件中注解处理函数时,它显示令牌不匹配错误:
vwhgwdsa1#
我认为您可以在php.ini文件中检查以下参数,如:
php.ini
upload_max_filesize = 40m post_max_size = 50m
重新启动服务器后,如(apache)希望这对你有用!
vxqlmq5t2#
首先,检查您的PHP版本。
php -v
下面的命令将打印服务器正在使用的php.ini文件的路径。
php -i | grep php.ini
下一个
sudo nano /etc/php/7.4/cli/php.ini
默认情况下,post_max_size,upload_max_filesize与memory_limit得值分别为8M,2M与128M.搜索这些变量并更改其值,同时确保大小遵循与默认值相同的比率。请参见以下示例:
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
c86crjj03#
其中一个问题是Laravel PHP artisan serve本地开发服务器使用PHP/CLI下的php.ini,而不是PHP/apache 2下的php.ini因此,如果您在使用PHP artisan serve进行开发时遇到这个问题,请获取/etc/php[version]/cli文件夹下的php.ini。
PHP artisan serve
/etc/php[version]/cli
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捕获PostTooLargeException:Error Handling有关如何使用Error Handling捕获PostTooLargeException的详细答案,您可以在此线程中看到我的答案:线程与完整的答案。我挣扎了2天之前,我完全想出如何实现这一点。快乐编码!
Error Handling
PostTooLargeException
d8tt03nd5#
实际上,我正在为同一个问题寻找相同的答案。我发现这个问题可以通过编辑.htaccess文件来解决。在文件中添加以下代码。
.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
ua4mk5z46#
为了更准确地验证,我建议以字节为单位设置值,因为50 MB是52428800B,实际上是52 MB,而不是5000000B。.htaccess示例:
php_value upload_max_filesize 50000000B // 50M php_value post_max_size 50000000B // 50M
6条答案
按热度按时间vwhgwdsa1#
我认为您可以在
php.ini
文件中检查以下参数,如:重新启动服务器后,如(apache)
希望这对你有用!
vxqlmq5t2#
首先,检查您的PHP版本。
下面的命令将打印服务器正在使用的php.ini文件的路径。
下一个
默认情况下,post_max_size,upload_max_filesize与memory_limit得值分别为8M,2M与128M.
搜索这些变量并更改其值,同时确保大小遵循与默认值相同的比率。
请参见以下示例:
对于“负载很重的站点”,安装并运行FPM是很有用的。
最后,重新启动Web服务器。
c86crjj03#
其中一个问题是Laravel
PHP artisan serve
本地开发服务器使用PHP/CLI下的php.ini,而不是PHP/apache 2下的php.ini因此,如果您在使用
PHP artisan serve
进行开发时遇到这个问题,请获取/etc/php[version]/cli
文件夹下的php.ini。qnakjoqk4#
只是更改php.ini中的参数然后重新启动apache并不是最好的解决方案:
重新启动apache,如下所示:
sudo service apache2 restart
对我来说最好的方法是使用laravel的
Error Handling
捕获PostTooLargeException
:Error Handling有关如何使用
Error Handling
捕获PostTooLargeException
的详细答案,您可以在此线程中看到我的答案:线程与完整的答案。我挣扎了2天之前,我完全想出如何实现这一点。快乐编码!
d8tt03nd5#
实际上,我正在为同一个问题寻找相同的答案。我发现这个问题可以通过编辑
.htaccess
文件来解决。在文件中添加以下代码。
以上两行将解决此问题,但如果您添加了这么多大小,则下面的行给予将使您避免将来出现类似执行时间过期等问题。
ua4mk5z46#
为了更准确地验证,我建议以字节为单位设置值,因为50 MB是52428800B,实际上是52 MB,而不是5000000B。
.htaccess
示例: