Maison > développement back-end > tutoriel php > Comment accéder aux images stockées dans les vues Laravel pour des performances optimales ?

Comment accéder aux images stockées dans les vues Laravel pour des performances optimales ?

Linda Hamilton
Libérer: 2024-12-09 03:22:11
original
718 Les gens l'ont consulté

How to Access Stored Images in Laravel Views for Optimal Performance?

Accès aux images téléchargées dans le stockage Laravel pour le rendu des vues

Dans les applications Laravel, les avatars des utilisateurs ou d'autres ressources multimédias peuvent être stockés dans le répertoire de stockage . Pour accéder et afficher ces images dans une vue, vous disposez de plusieurs options :

1. Créer un lien symbolique

À partir de Laravel 5.3, la commande artisan storage:link crée un lien symbolique de public/storage à storage/app/public. Cela vous permet d'accéder aux fichiers de ce dernier répertoire en utilisant l'ancien chemin :

http://somedomain.com/storage/image.jpg
Copier après la connexion
Copier après la connexion

2. Utiliser une route personnalisée pour le service de fichiers

Si la création d'un lien symbolique n'est pas réalisable, vous pouvez créer une route personnalisée pour lire et servir des images :

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

Avec cette route, vous pouvez accéder aux fichiers en utilisant le chemin suivant :

http://somedomain.com/storage/image.jpg
Copier après la connexion
Copier après la connexion

3. Utiliser la bibliothèque d'images d'intervention (facultatif)

Si vous utilisez la bibliothèque d'images d'intervention, vous pouvez tirer parti de sa méthode Response() :

Route::get('storage/{filename}', function ($filename) {
    return Image::make(storage_path('public/' . $filename))->response();
});
Copier après la connexion

Remarque importante :

Le service manuel des fichiers peut entraîner une dégradation des performances par rapport au fait de laisser le serveur HTTP les gérer directement. Par conséquent, considérez les liens symboliques comme la méthode privilégiée pour des performances optimales.

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