【问题标题】:PostTooLargeException in LaravelLaravel 中的 PostTooLargeException
【发布时间】:2017-04-18 05:54:41
【问题描述】:

当我尝试上传大小超过 2 MB 的文件时,我收到了帖子太大的异常,我已经尝试了所有方法,比如增加 php.ini 文件中的 post_max_size 和 max_upload_size,但我仍然得到相同的结果错误。当我在 validatepostsize.php 文件中注释处理函数时,它显示令牌不匹配错误:

【问题讨论】:

  • 更改设置后是否重启了web服务器和/或php?
  • 是的,我尝试重新启动 apache 和 laravel 本地开发服务器,但仍然出现错误
  • 您是否确认您的更改已生效?尝试使用phpinfo() 并搜索post_max_size
  • 尽管您没有得到 413,但不要忘记检查网络服务器配置中的最大请求大小(apache:LimitRequestBody / nginx:client_max_body_size)。在 apache 上它默认为 0,但 nginx 在默认值上确实设置了一个受限值。
  • 我在 php.ini 文件中更改了 post_max_size,它在 phpinfo() 中显示我所做的更改已经生效,但仍然出现相同的错误。

标签: php laravel


【解决方案1】:

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

upload_max_filesize = 40m
post_max_size = 50m

重启你的服务器后像 (apache)

希望这对你有用!

【讨论】:

    【解决方案2】:

    首先,检查您的 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的值默认为8M分别为 2M128M

    搜索这些变量并更改它们的值,同时确保大小遵循与默认值相同的比率。

    请看下面的例子:

    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
    

    最后,重启你的网络服务器。

    sudo service apache2 restart
    

    【讨论】:

      【解决方案3】:

      实际上,我正在为同一问题寻找相同的答案。 我发现这个问题可以通过编辑.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
      

      【讨论】:

        【解决方案4】:

        仅更改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 的详细答案,您可以在此线程中查看我的答案:thread with full answer。在我完全弄清楚如何实现这一目标之前,我挣扎了 2 天。

        编码愉快!

        【讨论】:

          【解决方案5】:

          其中一个问题是 Laravel PHP artisan serve 本地开发服务器使用 PHP/CLI 下的 php.ini 而不是 PHP/apache2 下的 php.ini

          因此,如果您在使用 PHP artisan serve 进行开发时遇到此问题,请获取 /etc/php[version]/cli 文件夹下的 php.ini

          【讨论】:

            猜你喜欢
            • 2018-09-07
            • 2019-08-31
            • 2021-07-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-01-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多