Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in meinen Ansichten auf im Laravel-Speicher gespeicherte Bilder zugreifen?
Auf im Laravel-Speicher gespeicherte Bilder in Ansichten zugreifen
Um auf im Laravel-Speicher gespeicherte Benutzeravatare zuzugreifen und sie in Ansichten darzustellen, haben Sie mehrere Optionen .
Methode 1: Symbolisch Links
Der empfohlene Ansatz besteht darin, einen symbolischen Link zwischen dem öffentlichen Ordner und dem Speicherordner zu erstellen, in dem Ihre Bilder gespeichert sind. Dadurch können Sie auf Dateien aus dem Speicherordner zugreifen, als ob sie sich im öffentlichen Ordner befänden. Um einen symbolischen Link zu erstellen, können Sie den folgenden Befehl verwenden:
php artisan storage:link
Dadurch wird ein Link von public/storage zu storage/app/public erstellt. Sie können dann über Pfade wie die folgenden auf Ihre Bilder zugreifen:
http://somedomain.com/storage/image.jpg
Methode 2: Festgelegte Route (ohne symbolischen Link)
Wenn das Erstellen symbolischer Links nicht möglich ist, können Sie kann eine bestimmte Route zum Lesen und Bereitstellen von Bildern aus dem Speicherordner erstellen. Zum Beispiel:
Route::get('storage/{filename}', function ($filename) { // Path to the file $path = storage_path('public/' . $filename); // Check if file exists if (!File::exists($path)) { abort(404); } // Retrieve file contents and mime type $file = File::get($path); $type = File::mimeType($path); // Create a response object $response = Response::make($file, 200); $response->header("Content-Type", $type); // Return the response return $response; });
Sie können dann über folgende Pfade auf Ihre Bilder zugreifen:
http://somedomain.com/storage/image.jpg
Überlegungen zur Leistung
Das ist wichtig zu beachten Das manuelle Bereitstellen von Dateien über eine Route führt im Vergleich zur Verwendung symbolischer Links zu Leistungseinbußen. Dies liegt daran, dass der gesamte Laravel-Anfragelebenszyklus ausgeführt wird, um den Dateiinhalt abzurufen.
Das obige ist der detaillierte Inhalt vonWie kann ich in meinen Ansichten auf im Laravel-Speicher gespeicherte Bilder zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!