调用未定义的方法 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,
- 在您的 config/app.php 文件中,添加
Intervention\Image\ImageServiceProvider::class,
在供应商数组中添加
'Image' => Intervention\Image\Facades\Image::class,
在别名数组中。
- 运行
php artisan config:cache
命令。
- 在你的控制器中添加
使用图片;
在 class 定义之前。
- 现在您可以根据需要在控制器的函数中使用图像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.");
}
}
我从 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,
- 在您的 config/app.php 文件中,添加
Intervention\Image\ImageServiceProvider::class,
在供应商数组中添加
'Image' => Intervention\Image\Facades\Image::class,
在别名数组中。
- 运行
php artisan config:cache
命令。
- 在你的控制器中添加
使用图片;
在 class 定义之前。
- 现在您可以根据需要在控制器的函数中使用图像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.");
}
}