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
Patricia Arquetteoriginal
2024-12-25 07:26:36429parcourir

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

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) }}">

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;
});

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

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

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!

Déclaration:
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