Maison > développement back-end > tutoriel php > Comment afficher les avatars des utilisateurs du stockage Laravel dans les vues ?

Comment afficher les avatars des utilisateurs du stockage Laravel dans les vues ?

Patricia Arquette
Libérer: 2024-12-25 07:26:36
original
396 Les gens l'ont consulté

How to Display User Avatars from Laravel Storage in Views?

Accès aux avatars des utilisateurs à partir du stockage dans les vues Laravel

Arrière-plan :

Le mécanisme de stockage de Laravel vous permet de stocker les avatars des utilisateurs et d'autres fichiers, mais ces fichiers se trouvent généralement dans le dossier /storage, qui est inaccessible via les requêtes HTTP habituelles pointant vers le dossier /public dossier.

Solution :

Pour afficher les avatars des utilisateurs depuis le stockage dans vos vues, il existe deux approches principales :

1. Création d'un lien symbolique

L'approche recommandée consiste à créer un lien symbolique entre le dossier /public/storage et le dossier /storage/app/public à l'aide de la commande suivante :

php artisan storage:link
Copier après la connexion

Cela crée un raccourci qui vous permet d'accéder aux fichiers de stockage comme s'ils se trouvaient dans le dossier /public. Vous pouvez ensuite accéder à l'avatar dans votre vue comme suit :

<img src="{{ asset('storage/avatars/' . $user->avatar) }}">
Copier après la connexion

2. Utilisation d'un itinéraire personnalisé

Si vous ne pouvez pas créer de lien symbolique pour une raison quelconque, vous pouvez définir un itinéraire personnalisé qui lit et sert le fichier image. Voici un exemple utilisant une route de fermeture :

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;
});
Copier après la connexion

Vous pouvez ensuite accéder à l'avatar dans votre vue en utilisant la route /storage :

<img src="{{ route('storage.show', ['filename' => $user->avatar]) }}">
Copier après la connexion

Considérations :

  • Le service manuel de fichiers via une route peut entraîner une pénalité de performances par rapport à l'utilisation d'un fichier symbolique. lien.
  • Assurez-vous de sécuriser votre itinéraire personnalisé pour empêcher tout accès non autorisé à vos fichiers de stockage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal