{"id":24902,"date":"2021-05-27T12:31:00","date_gmt":"2021-05-27T09:31:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24902"},"modified":"2021-10-18T02:38:40","modified_gmt":"2021-10-17T23:38:40","slug":"laden-sie-mehrere-bilder-in-laravel-hoch-und-aendern-sie-die-groesse","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/laden-sie-mehrere-bilder-in-laravel-hoch-und-aendern-sie-die-groesse\/","title":{"rendered":"Laden Sie mehrere Bilder in Laravel hoch und \u00e4ndern Sie die Gr\u00f6\u00dfe"},"content":{"rendered":"<p>Neben diesem Blog betreibe ich einen <a href=\"https:\/\/www.youtube.com\/channel\/UCosi8Kv8-EPLt5TBJLlsWJA\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">YouTube-Kanal, auf<\/a> dem ich die Video-Tutorials teile. K\u00fcrzlich fragte einer der Abonnenten des YouTube-Kanals nach der Gr\u00f6\u00dfen\u00e4nderung mehrerer Bilder in Laravel. Sie m\u00f6chten die Gr\u00f6\u00dfe mehrerer Bilder auf einmal \u00e4ndern. In diesem Artikel untersuchen wir, wie Sie mehrere Bilder in Laravel hochladen und ihre Gr\u00f6\u00dfe \u00e4ndern.<\/p>\n<p><a href=\"https:\/\/image.intervention.io\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Intervention Image<\/a> ist eine Open-Source-Bibliothek, die es uns erm\u00f6glicht, Bilder zu manipulieren. Ich werde diese Bibliothek verwenden, um die Gr\u00f6\u00dfe von Bildern zu \u00e4ndern.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20446-6081f2f1b1c63.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20446-6081f2f1b1c63.png\" alt=\"Laden Sie mehrere Bilder in Laravel hoch und \u00e4ndern Sie die Gr\u00f6\u00dfe\" ><\/a><\/p>\n<h3>Einstieg<\/h3>\n<p>Um unser Ziel zu erreichen, m\u00fcssen Sie die Intervention Image-Bibliothek im Laravel-Projekt installieren und konfigurieren. \u00d6ffnen Sie das Terminal in Ihrem Projekt-Root-Verzeichnis und f\u00fchren Sie den Befehl aus:<\/p>\n<pre><code>composer require intervention\/image<\/code><\/pre>\n<p>Sobald die Bibliothek installiert ist, \u00f6ffnen Sie die <code>config\/app.php<\/code>Datei und f\u00fcgen Sie Dienstanbieter und Fassade hinzu. F\u00fcgen Sie dem <code>$providers<\/code>Array die Dienstanbieter f\u00fcr dieses Paket hinzu .<\/p>\n<pre><code>InterventionImageImageServiceProvider::class,<\/code><\/pre>\n<p>F\u00fcgen Sie die Fassade zum <code>$aliases<\/code>Array hinzu.<\/p>\n<pre><code>'Image' =&gt; InterventionImageFacadesImage::class,<\/code><\/pre>\n<p>Als n\u00e4chstes ben\u00f6tigen wir ein Verzeichnis, in dem wir unsere hochgeladenen Dateien speichern. <a href=\"https:\/\/laravel.com\/docs\/master\/filesystem\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Laravel Filesystem<\/a> bietet eine \u00f6ffentliche Festplatte zum Speichern der Dateien. Die \u00f6ffentliche Platte enth\u00e4lt Dateien, die \u00f6ffentlich zug\u00e4nglich sind. Sie finden die hochgeladenen Dateien im <code>storage\/app\/public<\/code>Ordner. Um auf diese Dateien im Web zuzugreifen, m\u00fcssen Sie einen symbolischen Link von <code>public\/storage<\/code>zu erstellen <code>storage\/app\/public<\/code>.<\/p>\n<p>Erstellen Sie einen symbolischen Link mit dem Befehl:<\/p>\n<pre><code>php artisan storage:link<\/code><\/pre>\n<p>Dieser Befehl w\u00fcrde einen Speicherordner unter dem \u00f6ffentlichen Verzeichnis erstellen. Hier speichern wir unsere Dateien.<\/p>\n<h3>Bilder in Laravel hochladen und skalieren<\/h3>\n<p>Um Dateien auf einen Server hochzuladen, ben\u00f6tigen Sie ein Formular. Lassen Sie uns ein Formular erstellen, in dem Sie mehrere Dateien zum Hochladen auf einen Server ausw\u00e4hlen k\u00f6nnen. Unten finden Sie einen Beispielcode des Formulars, das in Ihre Ansichtsdatei eingef\u00fcgt wird.<\/p>\n<pre><code>&lt;form action=\"{{ url('ROUTE HERE') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label for=\"exampleInputFile\"&gt;File input&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"profile_image[]\" id=\"exampleInputFile\" multiple \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0{{ csrf_field() }}\n\u00a0\u00a0\u00a0\u00a0&lt;button type=\"submit\" class=\"btn btn-default\"&gt;Submit&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Im Formular habe ich einen Dateieingabenamen als &#8218;profile_image[]&#8216; verwendet, der ein Array von Dateien an den Server sendet. Au\u00dferdem habe ich ein Attribut &#8218;multiple&#8216; hinzugef\u00fcgt, mit dem wir mehrere Dateien ausw\u00e4hlen k\u00f6nnen. Ersetzen Sie den Platzhalter ROUTE_URL durch Ihren tats\u00e4chlichen Wert.<\/p>\n<p>Da wir die Bilder hochladen und ihre Gr\u00f6\u00dfe \u00e4ndern m\u00fcssen, f\u00fcgen Sie im Controller wie folgt zwei Fassaden hinzu.<\/p>\n<pre><code>&lt;?php\n\u00a0\nnamespace AppHttpControllers;\n\u00a0\nuse IlluminateHttpRequest;\nuse Image; \/\/Intervention Image\nuse IlluminateSupportFacadesStorage; \/\/Laravel Filesystem\n\u00a0\nclass ImageController extends Controller\n{\n\u00a0\n}<\/code><\/pre>\n<p>Durch Hinzuf\u00fcgen der Fassade k\u00f6nnen Sie Gr\u00f6\u00dfen\u00e4nderungsfunktionen der Interventionsbildbibliothek aufrufen. Im folgenden Code werde ich die Dateien an zwei Stellen hochladen. Eines ist das Originalbild. Der zweite befindet sich unter dem Miniaturansichtsverzeichnis. Wir laden zuerst das Originalbild in den Thumbnail-Ordner hoch und \u00e4ndern dann die Gr\u00f6\u00dfe.<\/p>\n<pre><code>public function store(Request $request)\n{\n\u00a0\u00a0\u00a0\u00a0if ($request-&gt;hasFile('profile_image')) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0foreach($request-&gt;file('profile_image') as $file){\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename with extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenamewithextension = $file-&gt;getClientOriginalName();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get filename without extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/get file extension\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$extension = $file-&gt;getClientOriginalExtension();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/filename to store\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filenametostore = $filename.'_'.uniqid().'.'.$extension;\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Storage::put('public\/profile_images\/'. $filenametostore, fopen($file, 'r+'));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Storage::put('public\/profile_images\/thumbnail\/'. $filenametostore, fopen($file, 'r+'));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/Resize image here\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$thumbnailpath = public_path('storage\/profile_images\/thumbnail\/'.$filenametostore);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img = Image::make($thumbnailpath)-&gt;resize(400, 150, function($constraint) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$img-&gt;save($thumbnailpath);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return redirect('ROUTE_URL')-&gt;with('success', \"Image uploaded successfully.\");\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Hier \u00e4ndern wir die Gr\u00f6\u00dfe des Bildes proportional. Dabei behalten wir das Seitenverh\u00e4ltnis bei und das Bild wird nicht abgeschnitten. Ich \u00fcbergebe Breite als 400 und H\u00f6he als 150. Sie k\u00f6nnen diese Werte nach Ihren W\u00fcnschen \u00e4ndern.<\/p>\n<p>Fahren Sie fort und testen Sie es. Sie erhalten die Gr\u00f6\u00dfen\u00e4nderungsversion der hochgeladenen Bilder im Verzeichnis &#8217;storage\/profile_images\/thumbnail&#8216;.<\/p>\n<p>Wenn Sie nach einer harten Ernte suchen, ersetzen Sie die folgenden Zeilen<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(400, 150, function($constraint) {\n\u00a0\u00a0\u00a0\u00a0$constraint-&gt;aspectRatio();\n});\n$img-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Mit<\/p>\n<pre><code>$img = Image::make($thumbnailpath)-&gt;resize(100, 100)-&gt;save($thumbnailpath);<\/code><\/pre>\n<p>Ich hoffe, Sie verstehen, wie Sie mehrere Bilder in Laravel hochladen und deren Gr\u00f6\u00dfe \u00e4ndern. Bitte teilen Sie Ihre Gedanken und Vorschl\u00e4ge im Kommentarbereich unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-laden-sie-eine-datei-mit-dem-laravel-dateisystem-auf-s3-hoch\/\" title=\"So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch\">So laden Sie eine Datei mit dem Laravel-Dateisystem auf S3 hoch<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-erstellen-sie-ein-backup-der-laravel-anwendung\/\" title=\"So erstellen Sie ein Backup der Laravel-Anwendung\">So erstellen Sie ein Backup der Laravel-Anwendung<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/so-integrieren-sie-den-mailchimp-newsletter-in-die-laravel-anwendung\/\" title=\"So integrieren Sie den MailChimp-Newsletter in die Laravel-Anwendung\">So integrieren Sie den MailChimp-Newsletter in die Laravel-Anwendung<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suchen Sie nach dem Hochladen und \u00c4ndern der Gr\u00f6\u00dfe mehrerer Bilder in Laravel? In diesem Artikel zeigen wir Ihnen, wie Sie diese Aufgabe mit Intervention Image durchf\u00fchren<\/p>\n","protected":false},"author":1,"featured_media":21676,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[496],"tags":[845],"class_list":["post-24902","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24902","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24902"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24902\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21676"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24902"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24902"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24902"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}