【问题标题】:Laravel file uploads failing when file size is larger than 2mb当文件大小大于 2mb 时,Laravel 文件上传失败
【发布时间】:2017-06-01 22:14:32
【问题描述】:

我昨天启动了一个早期测试版网站。这是 vrep.io,我遇到了一个奇怪的问题。上传大于 2mb 的图片(用户头像)时,laravel 验证器返回“validation.uploaded”错误消息。

验证码:

protected function basicValidator( array $data ) {
    return Validator::make( $data, [
        'name'        => 'required|min:2|max:255',
        'occupation'  => 'max:255',
        'avatar'      => 'mimes:jpeg,png,gif|dimensions:min_width=500,min_height=500|max:8000',
        'drop-avatar' => 'in:1,0',
    ],
        [
            'avatar.mimes'      => 'Uploaded file format should be jpeg, jpg, png or gif.',
            'avatar.dimensions' => 'Image should have minimum 500x500px dimensions.',
            'avatar.max'        => 'Maximum allowed file size is 6 MB.',
        ] );
}

我更改了当前的php.ini文件参数:

upload_max_filesize   100M
post_max_size         100M
memory_limit          256M

它在 AWS EC2 实例上运行。 UBUNTU 16.04 和 Nginx。

我也修改了 nginx 配置文件:

$ sudo vim /etc/nginx/sites-available/default

client_max_body_size 100m;

重启了nginx和php,甚至重启了整个web服务器。没有效果。上传大于 2mb 的文件时还是同样的错误。

附言我在本地运行宅基地,文件上传工作没有任何问题。问题仅在生产服务器上。

我错过了什么?

【问题讨论】:

  • 你能添加你的验证码和完整的错误吗?
  • 我已经添加了验证器代码,整个错误消息是“validation.uploaded”
  • 我认为您在错误的文件中进行更改...有 2 个 php 配置文件

标签: php laravel amazon-web-services nginx amazon-ec2


【解决方案1】:

我不知道怎么做,但即使我整天都在寻找答案,我终于在这里发布后几分钟内找到了解决方案。 SO上有一些魔法。 所以我编辑了错误的 php.ini 文件。我正在通过 ssh 检查使用了哪个 php ini 文件:

$ php --ini

但它在那里显示了错误的文件。由于某种原因,实际的配置文件有所不同。

现在我转储了 php 信息:

<?php
phpinfo();
?>

找到了实际的配置文件,一切正常。希望这会对某人有所帮助。

【讨论】:

  • 你为我节省了很多时间
【解决方案2】:

有时您安装 php-fpm 并且必须为其更改特定的 ini。 查找文件位置的更好方法是“定位”命令:

$ locate php.ini

/etc/php5/cgi/php.ini
/etc/php5/cli/php.ini
/etc/php5/fpm/php.ini

现在如果你安装 php-fpm 必须更改 fpm 文件夹中的 php.ini。

【讨论】:

    猜你喜欢
    • 2014-11-17
    • 2015-01-20
    • 2019-01-20
    • 2018-12-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    相关资源
    最近更新 更多