src/Controller/HomeController.php line 17

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\TelechargementsFichiers;
  4. use App\Repository\TelechargementsFichiersRepository;
  5. use App\Service\Telechargements;
  6. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  7. use Symfony\Component\HttpFoundation\Response;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. class HomeController extends AbstractController
  10. {
  11.     #[Route('/'name'app_home'methods: ['GET'])]
  12.     public function index(Telechargements $telechargements): Response
  13.     {
  14.         $listeCategories $telechargements->getAllCategories();
  15.         $listeFichiers $telechargements->getAllFichiers();
  16.         return $this->render('home/index.html.twig', [
  17.             'listeCategories' => $listeCategories,
  18.             'listeFichiers' => $listeFichiers,
  19.         ]);
  20.     }
  21.     #[Route('/telechargement/{idFichier}'name'app_download'methods: ['GET'])]
  22.     public function downloadFichier(
  23.         Telechargements $telechargements,
  24.         TelechargementsFichiersRepository $fichierRepository,
  25.         int $idFichier
  26.     ): Response {
  27.         $fichier $fichierRepository->find($idFichier);
  28.         if ($fichier->getRoleNeedToDl() == 'aucun' || $this->isGranted('IS_AUTHENTICATED_FULLY')) {
  29.             $fichierName $fichier->getNomFichier() . $fichier->getTypeFichier();
  30.             $path 'uploads/fichiers/' $fichierName;
  31.             $absolutePath realpath($path);
  32.             return $this->file($absolutePath$fichierName);
  33.         } else {
  34.             $this->addFlash('danger''Vous devez être connecté pour télécharger ce fichier');
  35.             return $this->redirectToRoute('app_home');
  36.         }
  37.     }
  38. }