Reputation: 317
I've an input
<input type="file" name="image[]" multiple="multiple" />
and controller function
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);
}
}
but all the time validator gives me error that
The image must be an image.
Upvotes: 17
Views: 20210
Reputation: 1
foreach ($images as $img) {
$request->validate([
'multi_img.*' => ['required', 'image', 'mimes:jpeg,png,jpg', 'max:2048'],
]);}
Upvotes: 0
Reputation: 506
Move validation outside the loop and try with the rules:
'image' => 'required',
'image.*' => 'image|mimes:jpeg,png,jpg,gif,svg|max:2048'
Upvotes: 49