如果文件在 laravel 中上传,则文件 mime 类型验证

file mime type validation if file is uploaded in laravel

我有一个文件上传字段:

<input class="form-control" type="file" name="image[]" multiple="multiple">

此字段是可选的。用户可以添加或不添加文件。

我想要文件类型验证,我不想让用户添加图像以外的文件。这是我到目前为止所做的。

$this->validate($request,[
        'image.*' => 'mimes:jpg,jpeg,png,bmp,tiff |max:4096',
    ],$messages = [
        'mimes' => 'Please insert image only',
    ]);

但是,当没有文件上传时,验证没有通过。任何帮助表示赞赏。

根据Laravel 5.8

使用请求数据进行文件验证,上传前检查 MIME 类型和文件大小

$validator = Validator::make($request->all(),[
        'image' => 'required|mimes:jpg,jpeg,png,bmp,tiff |max:4096',
    ],$messages = [
        'mimes' => 'Please insert image only',
        'max'   => 'Image should be less than 4 MB'
    ]);

dd($validator->errors());

注意:不要忘记使用 Validator Facade

我可能会检查请求中是否存在该文件,然后 运行 对其进行验证。 例如:

if ($request->has('image') {
    // Do your validation check
 }