Heim >Backend-Entwicklung >PHP-Tutorial >Wie zeige ich Benutzeravatare aus Laravel Storage in Ansichten an?

Wie zeige ich Benutzeravatare aus Laravel Storage in Ansichten an?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-25 07:26:36399Durchsuche

How to Display User Avatars from Laravel Storage in Views?

Zugriff auf Benutzeravatare aus dem Speicher in Laravel-Ansichten

Hintergrund:

Der Speichermechanismus von Laravel ermöglicht Ihnen das Speichern von Benutzeravataren und andere Dateien, aber diese Dateien befinden sich normalerweise im Ordner /storage, auf den über reguläre HTTP-Anfragen, die auf /public verweisen, nicht zugegriffen werden kann Ordner.

Lösung:

Um Benutzeravatare aus dem Speicher in Ihren Ansichten anzuzeigen, gibt es zwei Hauptansätze:

1. Erstellen eines symbolischen Links

Der empfohlene Ansatz besteht darin, einen symbolischen Link zwischen dem Ordner /public/storage und dem Ordner /storage/app/public mit dem folgenden Befehl zu erstellen:

php artisan storage:link

Dadurch wird eine Verknüpfung erstellt, mit der Sie auf Speicherdateien zugreifen können, als ob sie sich im Ordner /public befänden. Anschließend können Sie wie folgt auf den Avatar in Ihrer Ansicht zugreifen:

<img src="{{ asset('storage/avatars/' . $user->avatar) }}">

2. Verwenden einer benutzerdefinierten Route

Wenn Sie aus irgendeinem Grund keinen symbolischen Link erstellen können, können Sie eine benutzerdefinierte Route definieren, die die Bilddatei liest und bereitstellt. Hier ist ein Beispiel mit einer Schließungsroute:

Route::get('storage/{filename}', function ($filename) {
    $path = storage_path('public/' . $filename);

    if (!File::exists($path)) {
        abort(404);
    }

    $file = File::get($path);
    $type = File::mimeType($path);

    $response = Response::make($file, 200);
    $response->header("Content-Type", $type);

    return $response;
});

Sie können dann über die /storage-Route auf den Avatar in Ihrer Ansicht zugreifen:

<img src="{{ route('storage.show', ['filename' => $user->avatar]) }}">

Überlegungen:

  • Das manuelle Bereitstellen von Dateien über eine Route kann im Vergleich zur Verwendung einer symbolischen Route zu Leistungseinbußen führen Link.
  • Stellen Sie sicher, dass Sie Ihre benutzerdefinierte Route sichern, um unbefugten Zugriff auf Ihre Speicherdateien zu verhindern.

Das obige ist der detaillierte Inhalt vonWie zeige ich Benutzeravatare aus Laravel Storage in Ansichten an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn