laravel 介入图片多图上传

Intervention image multiple image upload in laravel

在blade

<input type="file" name="image[]" id="" required class="form-control" multiple accept="image/*">

在控制器中

public function addReviewPost(Request $request)
{
    $image = $request->file('image');

    $this->validate($request, [
        'image' => 'required',
        'image.*' => ' max:2048 | dimensions:max_width=2200',
    ]);

    if (request()->hasFile('image')) {
        $counter = count($image);

        for ($i = 0; $i < $counter; $i++) {

            $image = Image::make($image[$i]);
            $image->resize(null, 627, function ($constraint) {
                $constraint->aspectRatio();
            });
            $image->save(public_path('../../img/testimonial/' . time() . '.png'));
        }
    }

}

显示错误

Symfony\Component\Debug\Exception\FatalThrowableError
Cannot use object of type Intervention\Image\Image as array

任何人都可以帮助我如何使用干预图像包上传多个文件?

请尝试以下操作:

   public function addReviewPost(Request $request)
    {
     if (request()->hasFile('image')) {
        $images = $request->file('image');
        foreach ($images as $key => $file) { 
            $image = Image::make($request->file($file));
            $image->resize(null, 627, function ($constraint) {
                $constraint->aspectRatio();
            });
            $image->save(public_path('../../img/testimonial/' . time() . '.png'));
        }
    }
    }

如果您有任何错误,请告诉我。

如果有效,别忘了将其标记为答案

希望对你有帮助

谢谢

html

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

控制器

foreach ($request->images as $key=>$image) {
                $iimage = Image::make($image)
                                ->resize(350, 150)
                                ->encode('jpg');

            Storage::disk('local')->put('public/gallery_images/' . $image->hashName(), (string)$iimage, 'public');
            $request_data['image']    = 'gallery_images/'. $image->hashName();
            $request_data['owner_id'] = auth()->guard('owner')->user()->id;

            Gallery::create($request_data);
        
        }//end of foreach