我已经添加了一个表单添加图像文件上传并验证了它,文件上传只接受.png
文件.当我选择jpg,jpeg
或其他格式抛出错误消息字段必须是一个图像.
Laravel版本版本5.8.38
我的控制器方法
public function store() {
$data = request()->validate([
'caption' => 'required',
'image' => 'required | image'
]);
Post::create($data);
}
我的视图
<form action="/p" enctype="multipart/form-data" method="POST">
@csrf
<div class="row">
<label for="image" class="col-md-4 col-form-label">Post Image</label>
<input type="file" class="form-control-file" id="image" name="image">
@error('image')
<strong style="color: #e3342f;font-size:80%">{{ $message }}</strong>
@enderror
</div>
</form>
3条答案
按热度按时间qxgroojn1#
cotxawn72#
在你的事业中你可以选择
mimes: png
ruyhziif3#
这是一个bug。发生这种情况是因为Laravel指定的有效mime列表只包含“jpeg”,但mime猜测者猜测文件类型为“jpg”。由于图像验证只是验证mime类型的简写,您可以自己指定这些类型并添加“jpeg”。以下是与
image
验证器等效但没有bug的功能:忽略
image
要求是很重要的。也不需要指定file
,因为这是由mime验证完成的。