2017-02-01 5 views
1

Ich verwende Bildintervention, um ein Bild im Speicherordner zu speichern. Ich habe den Code unten und es scheint nur einen Dateinamen mit einem leeren Bild zu speichern. Ich denke, ich brauche einen Weg, den Inhalt der Datei in den Ordner zu schreiben, aber ich kämpfe um das Snippet.Wie wird das hochgeladene Bild in Laravel gespeichert?

if ($request->hasFile('photo')) { 
      $image  = $request->file('photo'); 
      $fileName = time() . '.' . $image->getClientOriginalExtension(); 

      $img = Image::make($image->getRealPath()); 
      $img->resize(120, 120, function ($constraint) { 
       $constraint->aspectRatio();     
      }); 

      //dd(); 
      Storage::disk('local')->put('images/1/smalls'.'/'.$fileName, $img, 'public'); 

Antwort

3

Sie benötigen

if ($request->hasFile('photo')) { 
      $image  = $request->file('photo'); 
      $fileName = time() . '.' . $image->getClientOriginalExtension(); 

      $img = Image::make($image->getRealPath()); 
      $img->resize(120, 120, function ($constraint) { 
       $constraint->aspectRatio();     
      }); 

      $img->stream(); // <-- Key point 

      //dd(); 
      Storage::disk('local')->put('images/1/smalls'.'/'.$fileName, $img, 'public'); 
} 
+0

Dank zu tun. Ich bin mir nicht sicher, was Stream bedeutet oder tut, aber es funktioniert. –

+1

Eine Erklärung, was dies tatsächlich tut, wäre definitiv nützlich. – verism

+0

Es ist leicht herauszufinden, wenn Sie auf die [Dokumentation] (http://image.intervention.io/api/stream) schauen – Andrew

Verwandte Themen