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
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; });
Avec cette route, vous pouvez accéder aux fichiers en utilisant le chemin suivant :
http://somedomain.com/storage/image.jpg
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(); });
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!