【问题标题】:Laravel Image validation not working when I try to upload ai or psd file当我尝试上传 ai 或 psd 文件时,Laravel 图像验证不起作用
【发布时间】:2019-03-03 00:43:54
【问题描述】:

Laravel 图像验证不起作用。当我尝试上传 ai 或 PSD 文件时,它显示错误:

Illuminate\Http\Exceptions\PostTooLargeException 无消息

尝试上传 3Mb 图像文件时也无法正常工作。

$this->validate($request, [
      'company_name' => 'required',
      'logo' => 'mimes:jpeg,jpg,png|max:1024|image',
      'address' => 'required',
      'phone' => 'required|numeric',
      'currency_code' => 'required',
      'vat_rate' => 'required|numeric'
]);

【问题讨论】:

    标签: laravel validation


    【解决方案1】:

    默认文件上传大小为 2MB

    打开php.ini 文件。在 php.ini 文件中找到这些行并将其替换为以下数字:upload_max_filesize = 64M 保存更改并再次尝试上传文件。您现在将获得成功。

    您可以在 xampp/php/php.ini(Windows 用户)文件中找到您的 PHP 配置文件的路径并且不要忘记重新启动您的服务器

    【讨论】:

    • 为什么 max:1024 不起作用?我的意思是为什么绕过这个并检查if ($request->file('logo')) { // }
    【解决方案2】:

    尝试使用文档中的size 验证规则而不是max

    大小:值

    验证中的字段必须具有与给定值匹配的大小。 对于字符串数据,值对应于字符数。为了 数值数据,值对应于给定的整数值。为 数组,大小对应数组的计数。对于文件,大小 对应于以千字节为单位的文件大小。

    $this->validate($request, [
          'company_name' => 'required',
          'logo' => 'mimes:jpeg,jpg,png|size:1024|image', 
          'address' => 'required',
          'phone' => 'required|numeric',
          'currency_code' => 'required',
          'vat_rate' => 'required|numeric'
    ]);
    

    【讨论】:

    • 我不想上传 AI 或 PSD。
    • 在您的问题中您提到您正在尝试上传 ai 或 psd?我说的对吗?
    • max:1024 不起作用,因为大小以 kbs 和 1024 kbs = 2MB 为单位,因此您需要指定大尺寸!
    • 我想上传最大 2MB 的文件,但为什么上传了 3MB 的文件并绕过验证?
    • 如果您想将上传限制为 2MB,请尝试使用 size 而不是 max。检查更新的答案@ASMSaief
    猜你喜欢
    • 2018-01-18
    • 2015-08-30
    • 2018-06-23
    • 2020-08-18
    • 1970-01-01
    • 2021-03-13
    • 2019-11-26
    • 1970-01-01
    • 2020-08-28
    相关资源
    最近更新 更多