2016-04-14 12 views
0

ich Intervention bin mit mit Laravel 5.2, habe ich es Composer installiert und included Intervention\Image\ImageServiceProvider::class und 'Image' => Intervention\Image\Facades\Image::class in the config/app.phpInstallierte Intervention mit Laravel aber die Größe Methode existiert nicht

Ich habe auch die Verwendung Anweisung an den Controller hinzugefügt, wo ich es bin mit verwenden Intervention\Image\ImageManager;

Hier ist meine Funktion, wo ich das Foto zu verarbeiten bin versucht, aber wenn ich senden Sie das Formular, das diese Funktion ich diese Fehlermeldung

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

funktionell eingerichteten erhalten Anrufe auf

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

Antwort

1

Zuerst sollten Sie die Datei speichern und dann Instanz (Objekt) von ImageManager mit der Methode make erstellen.

Beispiel:

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

Auch können Sie die Fassade Intervention\Image\Facades\Image statt ImageManager Klasse.

2

Sie rufen die Methode zur Größenänderung für die Datei, nicht Intervention. Sollte funktionieren, wenn Sie $resizedImg = $file->resize(200,200); durch $resizedImg = Image::make($file)->resize(200,200); ersetzen, denke ich.

+1

Es wird nicht funktionieren. Zuerst sollte er die Datei speichern. –