如果文件在 laravel 中上传,则文件 mime 类型验证
Posted
技术标签:
【中文标题】如果文件在 laravel 中上传,则文件 mime 类型验证【英文标题】:file mime type validation if file is uploaded in laravel 【发布时间】:2017-11-08 16:24:44 【问题描述】:我有一个文件上传字段:
<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',
]);
但是,当没有文件上传时,验证没有通过。任何帮助表示赞赏。
【问题讨论】:
制作一个工作区,如果文件不为空 $val = 'mimes:jpg,jpeg,png,bmp,tiff |max:4096'; else '' 并将 $val 放入 'image.*' => $val, 【参考方案1】:根据 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());
注意:不要忘记使用验证器外观
【讨论】:
【参考方案2】:我可能会检查该文件是否存在于请求中,然后对其进行验证。 例如:
if ($request->has('image')
// Do your validation check
【讨论】:
以上是关于如果文件在 laravel 中上传,则文件 mime 类型验证的主要内容,如果未能解决你的问题,请参考以下文章