Maison >développement back-end >tutoriel php >Comment puis-je accéder aux images stockées dans le stockage Laravel dans mes vues ?
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!