如何验证多个图像输入?

时间:2017-07-07 05:04:38

标签: laravel laravel-5

我有这个功能,允许用户上传一个或多个图像。我已经创建了验证规则,但无论输入是什么,它都会返回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);
    }

如何解决这个问题? 这就是全部,谢谢!

1 个答案:

答案 0 :(得分:3)

您有多个图片上传字段名称,并将multiple属性添加到您的输入元素

<input type="file" name="image[]" multiple="multiple">

这样,你的输入就像是里面会有图像的数组。 由于数组输入验证的方法不同,请参阅文档here

所以,你必须验证这样的东西:

$this->validate($request,[
     'image' => 'required',
     'image.*' => 'mimes:jpg,jpeg,png,gif,bmp',
]);

希望,你理解