Mise en place de la route
Tout d’abord il vous faudra un controller avec une route prête à recevoir un nom d’image, et ensuite retourner l’image.
Ensuite il faut installer le package suivante : composer require symfony/mime qui va permettre à Symfony de détecter automatiquement le mime type à renvoyer.
Il faut également importer ces packages en haut du controller
use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\JsonResponse;
Mon arborescence de fichier
Mon image se trouve dans le dossier uploads
Une fois le Controller et la route prête voici le code à saisir pour permettre de retourner une image sous Symfony 5 :
/** * @Route("/img-route/{img}", name="img_route") * Une route avec un paramètre */ public function index($img): Response { //Récupération du dossier racine grace au kernel et ensuite ajout de l'emplacement du //fichier $filename = $this->getParameter('kernel.project_dir') . '/uploads/' . $img; //Si le fichier existe alors on le renvoi, sinon retour 404 if (file_exists($filename)) { //retour d'un new BinaryFileResponse avec le nom du fichier return new BinaryFileResponse($filename); } else { return new JsonResponse(null, 404); } }
Ce tutoriel est maintenant terminé, merci d’avoir lu et n’hésitez pas à partager 🙂