【问题标题】:Illuminate \ Http \ Exceptions \ PostTooLargeException照亮\ Http \异常\ PostTooLargeException
【发布时间】:2018-07-14 01:08:02
【问题描述】:

我已经配置了 php.ini 文件(post_max_size=10240M),但它仍然抛出 PostTooLargeException。如何在 Laravel 5.5 中增加上传和下载限制?

【问题讨论】:

  • 等待您发布大于 10gb 的内容吗?
  • 另外,如果是关于文件上传,那么也要更改upload_max_filesize
  • php -i | grep -i "upload\_max\_filesize\|post\_max\_size\|max\_file\_uploads" 是一个有用的命令,它可以帮助您发现您更新的任何“ini”文件可能没有被重新加载,或者可能根本不是正在使用的正确文件。最终我发现,由于我使用的是 Laradock,我的值被覆盖了:github.com/laradock/laradock/blob/v7.13/php-fpm/laravel.ini
  • 请更改 /etc/php/7.2/cli/php.ini 而不是 /etc/php/7.2/fpm/php.ini'。然后尝试哪个可能会解决您的问题

标签: php laravel laravel-5


【解决方案1】:

首先,检查你的php版本

php --version 


PHP 7.2.7-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Jun 22 2018 08:44:50) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.7-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

如果你的 php 版本是 7.2

打开这个文件/etc/php/7.2/fpm/php.ini

将这两个字段更新为足够大的内容。前任。 1024M2048M

post_max_size = 1024M                                                                                                            
upload_max_filesize = 1024M  

重启php

service php7.2-fpm restart

完成✅

【讨论】:

  • 这应该是/etc/php/7.2/cli/php.ini 而不是/etc/php/7.2/fpm/php.ini'. if you run via php artisan serve`
【解决方案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】:

    您可以在php.ini 文件中尝试以下代码来增加内存限制。

     ini_set('memory_limit','10240M');
     # Do your Intervention operations...
    

    您可能也有兴趣阅读https://laracasts.com/discuss/channels/servers/interventionimage-memory-limit?page=1

    【讨论】:

    • 将此行添加到什么文件中?请在您的回答中提及!
    【解决方案4】:

    1) 如果您从 php.ini 更改 post_max_size 并重新启动 apache 服务器,但之后没有得到正确的响应,那么你有临时解决方案。

    处理illuminate-http-exceptions-posttoolargeexception 异常

    public function render($request, Exception $exception)
    {
        if ($exception instanceof \Illuminate\Http\Exceptions\PostTooLargeException) {
            return redirect()->back()->withErrors(['File size is too large']);
        }
        return parent::render($request, $exception);
    }
    

    并在视图文件中显示错误

    @if ($errors->any())
        @foreach ($errors->all() as $error)
                        <div class="alert alert-danger">{{ $error }}</div>
        @endforeach
    @endif
    

    【讨论】:

      【解决方案5】:

      对于任何使用代客服务的人:
      我必须在/etc/php/7.4/fpm/php.ini 而不是/etc/php/7.4/cli/php.ini 中设置post_max_size、upload_max_filesize 和memory_limit。

      【讨论】:

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