src/Controller/HomeController.php line 17
<?php
namespace App\Controller;
use App\Entity\TelechargementsFichiers;
use App\Repository\TelechargementsFichiersRepository;
use App\Service\Telechargements;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
#[Route('/', name: 'app_home', methods: ['GET'])]
public function index(Telechargements $telechargements): Response
{
$listeCategories = $telechargements->getAllCategories();
$listeFichiers = $telechargements->getAllFichiers();
return $this->render('home/index.html.twig', [
'listeCategories' => $listeCategories,
'listeFichiers' => $listeFichiers,
]);
}
#[Route('/telechargement/{idFichier}', name: 'app_download', methods: ['GET'])]
public function downloadFichier(
Telechargements $telechargements,
TelechargementsFichiersRepository $fichierRepository,
int $idFichier
): Response {
$fichier = $fichierRepository->find($idFichier);
if ($fichier->getRoleNeedToDl() == 'aucun' || $this->isGranted('IS_AUTHENTICATED_FULLY')) {
$fichierName = $fichier->getNomFichier() . $fichier->getTypeFichier();
$path = 'uploads/fichiers/' . $fichierName;
$absolutePath = realpath($path);
return $this->file($absolutePath, $fichierName);
} else {
$this->addFlash('danger', 'Vous devez être connecté pour télécharger ce fichier');
return $this->redirectToRoute('app_home');
}
}
}