2016-03-21 28 views
3

Ich benutze Laravel 5 und habe ein Formular, um ein Bild hochzuladen. Beim Speichern der Datei, die ich in meinen Controller-Methoden habe, um das Bild zu bekommen und es in einem Verzeichnis kopieren:Laravel 5 Bildgröße ändern

if ($request->hasFile('picture')) { 
    $destinationPath = 'uploads'; 
    $filename = $image->getClientOriginalName(); 
    $extension = $image->getClientOriginalExtension(); // add 
    $picture = sha1($filename . time()) . '.' . $extension; //add 
    $offer->image = $picture; 
    $image->move($destinationPath, $picture); 
} 
$offer->save(); 

Bevor ich die Datei speichern würde Ich mag die Datei mit einem max ändern. Breite von 800px. Gibt es in Laravel eine Bildgrößen- oder Komprimierungsfunktion? Was wäre die beste Idee, dies zu tun?

Antwort

2

Sie können ein Paket installieren und verwenden, ähnlich wie intervention.

Beispiel von offizieller Website:

$img = Image::make('public/foo.jpg'); 
$img->resize(320, 240); 
$img->insert('public/watermark.png'); 
$img->save('public/bar.jpg'); 
+0

Wie ich das Bild in meinem Beispiel erhalten und sie als Parameter in Bild passiert :: machen()? – Steve

+0

Pfad zum Bild verwenden? – Gokigooooks

+0

Verwenden Sie einfach den Pfad zu einem hochgeladenen Bild als ersten Parameter. –

0
Image::make($request->file('image'))->resize(462, 462)->save('upload_path/filename.jpg')); 

versuchen diesen Code

+0

Bitte erläutern Sie, was im Code vor sich geht. Code Dumping ist hier verpönt. – rayryeng

+0

Fügen Sie dieses Paket zuerst Ihrer App hinzu. Hier sind die Details zur Paketinstallation. http://image.intervention.io/getting_started/installation dann versuchen Sie, die Anweisungen und den Prozess aus der Dokumentation zu folgen –