<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\BinaryFileResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* Class MediaController
* @package App\Controller
*
*/
#[Route(path: '/medias')]
class MediaController extends AbstractController
{
/**
*
* @param Request $request
* @param string $filename
* @return BinaryFileResponse
*/
#[Route(path: '/{folder}/{filename}.{_format}', name: 'app_media')]
public function media(Request $request, string $folder, string $filename ): BinaryFileResponse|Response
{
$filePath = sprintf('%s/%s/%s',
$this->getParameter('upload_directory'),
$folder,
implode('.', [$filename, $request->getRequestFormat()]));
if (!file_exists($filePath)) {
return new Response('Media introuvable.', 404);
//throw $this->createNotFoundException();
}
return $response = new BinaryFileResponse($filePath);
}
}