如何在laravel 5.3中对多个图像上传进行验证

时间:2016-09-27 14:33:38

标签: php validation frameworks laravel-5.3

我输入了

isDraggedItemIsFile = function(e) {
// handle FF
if (e.originalEvent.dataTransfer.files.length == 0) {
    return false;
}
// handle Chrome
if (e.originalEvent.dataTransfer.items) {
    if (typeof (e.originalEvent.dataTransfer.items[0].webkitGetAsEntry) == "function") {
        return e.originalEvent.dataTransfer.items[0].webkitGetAsEntry().isFile;
    } else if (typeof (e.originalEvent.dataTransfer.items[0].getAsEntry) == "function") {
        return e.originalEvent.dataTransfer.items[0].getAsEntry().isFile;
    }
}
return true;
};

$forms.on('drop', function(e) {
        if (isDraggedItemIsFile(e)) {
            // do something if file
        } else{
           // is directory
        }
    });

和控制器功能

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

但是所有时间验证器都给我错误

public function upload(Request $request)
{
    $user_id = Auth::user()->id;

    foreach ($request->image as $image)
    {
        $this->validate($request,[
        'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048'
    ]);
        $imageName = mt_rand() .time().'.'.$image->getClientOriginalExtension();
        $img = Image::make($image->getRealPath());
        $img->resize(100, 100, function ($constraint) {
                                    $constraint->aspectRatio();
                    })->save(public_path('images/thumbs').'/'.$imageName);
        $image->move(public_path('images'), $imageName);
    }
}

1 个答案:

答案 0 :(得分:18)

在循环外移动验证并尝试使用规则:

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