2016-04-14 13 views
0

我使用的干预Laravel 5.2,我一直在使用Composer和included Intervention\Image\ImageServiceProvider::class'Image' => Intervention\Image\Facades\Image::class in the config/app.php安装的干预Laravel但调整方法不存在

安装它,我还增加了使用语句控制器那里我使用它使用Intervention\Image\ImageManager;

这里是我的功能,我正在尝试处理的照片,但当我提交调用此函数我收到此错误信息

BadMethodCallException in Macroable.php line 81: 
    Method resize does not exist. 

Functi形式on

public function postAvatarUpload(Request $request) 
    { 
     $this->validate($request, [ 
      'image' => 'required|image|max:3000|mimes:jpeg,jpg,png', 
     ]); 
     $user = Auth::user(); 
     $usersname = $user->username; 
     $file = $request->file('image'); 
     $resizedImg = $file->resize(200,200); 
     $ext = $file->getClientOriginalExtension(); 
     $filename = $usersname . '.' . $ext; 
     if (Storage::disk('public')->has($usersname)) { 
      Storage::delete($usersname); 
     } 
      Storage::disk('public')->put($filename, File::get($resizedImg)); 
      $avatarPath = Storage::url($filename); 
      Auth::user()->update([ 
       'image' => $avatarPath, 
      ]); 

     return redirect()->route('profile.index', 
       ['username' => Auth::user()->username]); 
    } 

回答

1

首先,您应该保存该文件,然后使用方法make创建ImageManager的实例(对象)。

例子:

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

    $path = 'path/to'; 
    $fileName = 'example_name.' . $file->extension(); 

    $file->move($path, $fileName); 

    $image = ImageManager::make($path . DIRECTORY_SEPARATOR . $fileName); 
} 

此外,您还可以使用门面Intervention\Image\Facades\Image而不是ImageManager类。

2

您正在调用文件的resize方法,而不是Intervention。 如果你用$resizedImg = Image::make($file)->resize(200,200);代替$resizedImg = $file->resize(200,200);我认为应该可以工作。

+1

它不起作用。首先,他应该保存文件。 –