【问题标题】:How to do validation for multiple images upload in laravel 5.3如何在 laravel 5.3 中对多张图片上传进行验证
【发布时间】:2017-02-05 06:01:09
【问题描述】:

我有意见

    <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);
    }
}

但验证器总是给我错误

    The image must be an image.

【问题讨论】:

    标签: php validation frameworks laravel-5.3


    【解决方案1】:

    将验证移出循环并尝试使用规则:

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

    【讨论】:

    • 这是最佳答案
    • 它工作了,但你能不能深入解释一下,为什么它应该在外面?
    • 第一个指令“image”用于字段。第二个指令“image.*”用于文件本身。在您的循环中,您实际上是在一遍又一遍地验证该字段。
    • @misdreavus79 这是我希望在所有其他线程中找到的解释。感谢您指出,关于“图像”和“图像。*”
    猜你喜欢
    • 2015-09-14
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 2022-12-09
    • 2021-06-11
    • 1970-01-01
    • 2020-03-23
    • 2021-12-22
    相关资源
    最近更新 更多