【问题标题】:Intervention image multiple image upload in laravel在laravel中干预图像多张图片上传
【发布时间】:2020-04-26 16:30:44
【问题描述】:

在刀片中

<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

谁能帮我如何使用干预图像包上传多个文件?

【问题讨论】:

  • dd($request-&gt;all()) 看看图片的类型
  • 0 => Illuminate\Http\UploadedFile {#291 ▼ -test: false -originalName: "93649267_10221642080937792_4082659911438172160_n.jpg" -mimeType: "image/jpeg" -error: 0 #hashName: null path: “C:\xampp\tmp” 文件名:“php19F3.tmp” 基名:“php19F3.tmp” 路径名:“C:\xampp\tmp\php19F3.tmp” 扩展名:“tmp” 真实路径:“C:\xampp\tmp \php19F3.tmp” 类型:“文件” 可写:真 可读:真 可执行:假 文件:真 dir:假 链接:假 链接目标:“C:\xampp\tmp\php19F3.tmp” }
  • 这里是图像数组的输出
  • 它只显示一张图片。
  • 没有。它在数组中有 2 个图像。我抄了一张送给你

标签: php laravel image image-upload


【解决方案1】:

请尝试以下方法:

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

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

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

希望对你有帮助

谢谢

【讨论】:

  • 我已经使用 for 循环解决了这个问题。感谢您的回答。它也有效。谢谢...
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-08-20
    • 2015-06-01
    • 1970-01-01
    • 2020-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-12-22
    • 2019-09-05
    • 2018-04-28
    相关资源
    最近更新 更多