我有这个功能,允许用户上传一个或多个图像。我已经创建了验证规则,但无论输入是什么,它都会返回false。
规则:
public function rules()
{
return [
'image' => 'required|mimes:jpg,jpeg,png,gif,bmp',
];
}
上传方法:
public function addIM(PhotosReq $request) {
$id = $request->id;
// Upload Image
foreach ($request->file('image') as $file) {
$ext = $file->getClientOriginalExtension();
$image_name = str_random(8) . ".$ext";
$upload_path = 'image';
$file->move($upload_path, $image_name);
Photos::create([
'post_id' => $id,
'image' => $image_name,
]);
}
//Toastr notifiacation
$notification = array(
'message' => 'Images added successfully!',
'alert-type' => 'success'
);
return back()->with($notification);
}
如何解决这个问题? 这就是全部,谢谢!
答案 0 :(得分:3)
您有多个图片上传字段名称,并将multiple
属性添加到您的输入元素
<input type="file" name="image[]" multiple="multiple">
这样,你的输入就像是里面会有图像的数组。 由于数组输入验证的方法不同,请参阅文档here。
所以,你必须验证这样的东西:
$this->validate($request,[
'image' => 'required',
'image.*' => 'mimes:jpg,jpeg,png,gif,bmp',
]);
希望,你理解