src/Controller/admin/UploadController.php line 88

Open in your IDE?
  1. <?php
  2. namespace App\Controller\admin;
  3. use App\Service\Utils\Upload;
  4. use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\Filesystem\Filesystem;
  7. use Symfony\Component\HttpFoundation\File\File;
  8. use Symfony\Component\HttpFoundation\File\UploadedFile;
  9. use Symfony\Component\HttpFoundation\JsonResponse;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\HttpFoundation\Response;
  12. use Symfony\Component\Routing\Annotation\Route;
  13. class UploadController extends AbstractController
  14. {
  15.     /**
  16.      * @Security("is_granted('ROLE_RH')")
  17.      * @Route("/upload-file", name="upload-file")
  18.      * @param Request $request
  19.      */
  20.     public function processFiles(Request $request,Upload $upload)
  21.     {
  22.         $type $request->request->has('type') ? $request->request->get('type') : 'logo' ;
  23.         /* @var $file UploadedFile*/
  24.         $file $request->files->get('filepond-'.$type);
  25.         if(is_array($file)){
  26.             $file $file[0];
  27.         }
  28.         $uniqId $upload->saveTmpFile($file);
  29.         return  new Response($uniqId);
  30.     }
  31.     /**
  32.      * @Security("is_granted('ROLE_RH')")
  33.      * @Route("/upload-file/revert", name="upload-file-revert", methods={"DELETE"})
  34.      * @param Request $request
  35.      */
  36.     public function revertFiles(Request $request,Upload $upload)
  37.     {
  38.         $uniqId =$request->getContent();
  39.         $upload->removeTmpDir($uniqId);
  40.         return new Response("");
  41.     }
  42.     /**
  43.      * @Security("is_granted('ROLE_RH')")
  44.      * @Route("/upload-file/restore/{source}", name="upload-file-restore", methods={"GET"})
  45.      * @param Request $request
  46.      */
  47.     public function loadFiles(Request $request,$source)
  48.     {
  49.         $filePath =  $this->getParameter('upload_tmp_directory') . '/' $source '/';
  50.         $name "";
  51.         foreach (scandir($filePath) as $item) {
  52.             if ($item == '.' || $item == '..') {
  53.                 continue;
  54.             }
  55.             $name $item;
  56.         }
  57.         $filePath .= $name;
  58.         // check if file exists
  59.         $fs = new FileSystem();
  60.         if (!$fs->exists($filePath)) {
  61.             throw $this->createNotFoundException();
  62.         }
  63.         // load the file from the filesystem
  64.         $file = new File($filePath);
  65.         return $this->file($file);
  66.     }
  67.     /**
  68.      * @Security("is_granted('ROLE_RH')")
  69.      * @Route("/upload-file/load/logo/{source}", name="upload-file-restore-logo", methods={"GET"})
  70.      * @param Request $request
  71.      */
  72.     public function restoreLogoFile(Request $request,$source)
  73.     {
  74.         $filePath =  $this->getParameter('upload_logo_directory') . '/' $source ;
  75.         // check if file exists
  76.         $fs = new FileSystem();
  77.         if (!$fs->exists($filePath)) {
  78.             throw $this->createNotFoundException();
  79.         }
  80.         // load the file from the filesystem
  81.         $file = new File($filePath);
  82.         return $this->file($file);
  83.     }
  84.     /**
  85.      * @Security("is_granted('ROLE_RH')")
  86.      * @Route("/upload-file/load/doc/{source}", name="upload-file-restore-doc", methods={"GET"})
  87.      * @param Request $request
  88.      */
  89.     public function restoreDocFile(Request $request,$source)
  90.     {
  91.         $filePath =  $this->getParameter('upload_doc_directory') . '/' $source ;
  92.         // check if file exists
  93.         $fs = new FileSystem();
  94.         if (!$fs->exists($filePath)) {
  95.             throw $this->createNotFoundException();
  96.         }
  97.         // load the file from the filesystem
  98.         $file = new File($filePath);
  99.         return $this->file($file);
  100.     }
  101.     /**
  102.      * @Security("is_granted('ROLE_RH')")
  103.      * @Route("/upload-file/remove/{context}/{source}", name="upload-file-remove", methods={"DELETE"})
  104.      * @param Request $request
  105.      */
  106.     public function removeFiles(Request $request,Upload $upload,$source,$context)
  107.     {
  108.         $filePath $this->getParameter($context === 'doc' 'upload_doc_directory' 'upload_logo_directory') . '/' $source ;
  109.         $upload->removeFile($filePath);
  110.         return new JsonResponse('');
  111.     }
  112.     /**
  113.      * @Security("is_granted('ROLE_RH') or is_granted('ROLE_ADMIN')")
  114.      * @Route("/admin/dl/files/{type}", name="admin-dl-files")
  115.      */
  116.     public function downloadDocuments(Request $request,$type,Upload $upload)
  117.     {
  118.         $filename $request->query->get('filename');
  119.         $company $request->query->get('company');
  120.         if ($company) {
  121.             $filePath =  $upload->getDirectoryFile($type)  . DIRECTORY_SEPARATOR $company DIRECTORY_SEPARATOR $filename;
  122.         }
  123.         else{
  124.             $filePath =  $upload->getDirectoryFile($type)  . DIRECTORY_SEPARATOR .  $filename;
  125.         }
  126.         $upload->getDirectoryFile($type);
  127.         // check if file exists
  128.         $fs = new FileSystem();
  129.         if (!$fs->exists($filePath)) {
  130.             throw $this->createNotFoundException();
  131.         }
  132.         // load the file from the filesystem
  133.         $file = new File($filePath);
  134.         return $this->file($file);
  135.     }
  136. }