Maison >développement back-end >tutoriel php >Comment puis-je accéder aux images stockées dans le stockage Laravel dans mes vues ?

Comment puis-je accéder aux images stockées dans le stockage Laravel dans mes vues ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-08 06:30:11561parcourir

How Can I Access Images Stored in Laravel Storage Within My Views?

Accès aux images stockées dans le stockage Laravel dans les vues

Pour accéder aux avatars des utilisateurs stockés dans le stockage Laravel et les afficher dans les vues, vous disposez de plusieurs options .

Méthode 1 : Symbolique Liens

L'approche recommandée consiste à créer un lien symbolique entre le dossier public et le dossier de stockage où sont stockées vos images. Cela vous permet d'accéder aux fichiers du dossier de stockage comme s'ils se trouvaient dans le dossier public. Pour créer un lien symbolique, vous pouvez utiliser la commande suivante :

php artisan storage:link

Cela crée un lien de public/storage vers storage/app/public. Vous pouvez ensuite accéder à vos images en utilisant des chemins tels que :

http://somedomain.com/storage/image.jpg

Méthode 2 : itinéraire désigné (sans lien symbolique)

Si la création de liens symboliques n'est pas réalisable, vous peut créer un itinéraire spécifique pour lire et servir des images à partir du dossier de stockage. Par exemple :

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

Vous pouvez ensuite accéder à vos images en utilisant des chemins tels que :

http://somedomain.com/storage/image.jpg

Considérations relatives aux performances

Il est important de noter que Le service manuel de fichiers à l'aide d'une route entraîne une pénalité de performances par rapport à l'utilisation de liens symboliques. En effet, l'intégralité du cycle de vie de la requête Laravel est exécutée pour récupérer le contenu du fichier.

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