src/Controller/MediaController.php line 26

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\BinaryFileResponse;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. /**
  9.  * Class MediaController
  10.  * @package App\Controller
  11.  *
  12.  */
  13. #[Route(path'/medias')]
  14. class MediaController extends AbstractController
  15. {
  16.     /**
  17.      *
  18.      * @param Request $request
  19.      * @param string $filename
  20.      * @return BinaryFileResponse
  21.      */
  22.     #[Route(path'/{folder}/{filename}.{_format}'name'app_media')]
  23.     public function media(Request $requeststring $folderstring $filename ): BinaryFileResponse|Response
  24.     {
  25.         $filePath sprintf('%s/%s/%s',
  26.             $this->getParameter('upload_directory'),
  27.             $folder,
  28.             implode('.', [$filename$request->getRequestFormat()]));
  29.         if (!file_exists($filePath)) {
  30.             return new Response('Media introuvable.'404);
  31.             //throw $this->createNotFoundException();
  32.         }
  33.         return $response = new BinaryFileResponse($filePath);
  34.     }
  35. }