Laravel 验证不适用于 .JPG

dra*_*mir 4 mime-types laravel-5

在 Laravel5 中,我使用以下代码验证图片:

public function rules() {
    return [
        'name' => 'required',
        'pic' => 'required|mimes:jpeg,png',
    ];
}
Run Code Online (Sandbox Code Playgroud)

它的工作原理与扩展名的文件filename.jpgfilename.jpeg,但它不为filename.JPG

但是,它不会返回错误的文件扩展名,而是返回丢失的文件。任何人都可以帮忙吗?

del*_*roh 5

在你的pic规则中试试这个:

'pic' => 'required|mimes:jpeg,jpg,png',
Run Code Online (Sandbox Code Playgroud)

解释

遇到了这个问题,发现当你使用mimes:规则时,你必须指定你想要的扩展名是有效的,即你必须同时添加jpegjpg扩展变体。

其他解决方案

  • 使用mimetypes:规则image/jpeg涵盖 jpeg 格式的 3 个扩展变体:jpg jpeg jpe.

  • 使用image涵盖jpeg, png, bmp, gif, or svg包括jpeg扩展名变体的规则

更多关于mimesmimetypes规则:https://laravel.com/docs/5.5/validation#rule-mimetypes

所有 MIME 类型:

可以在以下位置找到 MIME 类型及其相应扩展的完整列表:https : //svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types