Laravel图像确认仅接受.png文件

uttx8gqw  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(152)

我已经添加了一个表单添加图像文件上传并验证了它,文件上传只接受.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>
qxgroojn

qxgroojn1#

public function store() {

        $data = request()->validate([
            'caption' => 'required',
            'image' => 'required|file|mimes:jpeg,jpg,png'
        ]);

        Post::create($data); 
 }
cotxawn7

cotxawn72#

"image"=>'image | required | mimes:jpeg,png,jpg,gif,svg | max:2048',

在你的事业中你可以选择mimes: png

ruyhziif

ruyhziif3#

这是一个bug。发生这种情况是因为Laravel指定的有效mime列表只包含“jpeg”,但mime猜测者猜测文件类型为“jpg”。由于图像验证只是验证mime类型的简写,您可以自己指定这些类型并添加“jpeg”。以下是与image验证器等效但没有bug的功能:

mimes:jpeg,jpg,png,gif,bmp,svg

忽略image要求是很重要的。也不需要指定file,因为这是由mime验证完成的。

相关问题