调用未定义的方法 Intervention\Image\Facades\Image::make()

Call to undefined method Intervention\Image\Facades\Image::make()

我从 Laravel 4.2 升级到 Laraveld5.3 intervention/image : "^2.3",

 if (Input::hasFile('logo')) {

        $path = public_path()."/assets/admin/layout/img/";
        File::makeDirectory($path, $mode = 0777, true, true);

        $image      = Input::file('logo');
        $extension  = $image->getClientOriginalExtension();
        $filename   = "logo.$extension";
        $filename_big   = "logo-big.$extension";

        Image::make($image->getRealPath())->save($path.$filename);
        Image::make($image->getRealPath())->save($path.$filename_big);

        $data['logo']   =   $filename;

    }

结果是,报错如下:

Call to undefined method Intervention\Image\Facades\Image::make()

我在 Laravel 5.4 项目中遇到了同样的问题。我偶然发现了这个 link

有助于解决问题。这是提供的修复程序

在 config/app 中将来自

的图像更改为 'aliases'
  'Image' => Intervention\Image\Facades\Image::class,

'Image' => Intervention\Image\ImageManagerStatic::class,

然后在你的控制器头部添加

use Image;

确保 在 config/app 中使用

更新供应商

Intervention\Image\ImageServiceProvider::class

并使用

更新别名
'Image' => Intervention\Image\Facades\Image::class,
  1. 在您的 config/app.php 文件中,添加

Intervention\Image\ImageServiceProvider::class,

在供应商数组中添加

'Image' => Intervention\Image\Facades\Image::class,

在别名数组中。

  1. 运行

php artisan config:cache

命令。

  1. 在你的控制器中添加

使用图片;

在 class 定义之前。

  1. 现在您可以根据需要在控制器的函数中使用图像class。假设,

$imageHeight = Image::make($request->file('file'))->height();

 public function optimizeFile(Request $request)
{
    $data = $request->file('image');
    // dd($data);
if ($request->hasFile('image')) {

    foreach($data as  $key => $val){

            $path=storage_Path('app/public/');
            $filename='image-'.uniqid().$key.'.'.'webp';
            $val->move($path,$filename); 
            $p['image']=$filename;
            $insert[$key]['image'] = $filename;

      

        //Resize image here
        $thumbnailpath[$key]['abc'] = storage_path('app/public/'.$filename);
      
        $img = Image::make($thumbnailpath)->resize(400, 150, function($constraint) {
            $constraint->aspectRatio();
        });
        $img->save($thumbnailpath);
    }

    return redirect('ROUTE_URL')->with('success', "Image uploaded successfully.");
}
}