src/Controller/Api/PdfController.php line 30

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Api;
  3. use App\Service\PdfService;
  4. use App\Service\UploadService;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\File\UploadedFile;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. /**
  11.  * Class PdfController
  12.  * @package App\Controller\Api
  13.  * @Route("/pdf-tool")
  14.  */
  15. class PdfController extends AbstractController
  16. {
  17.     
  18.     /**
  19.      * @param Request $request
  20.      * @param PdfService $pdfService
  21.      * @param UploadService $uploadService
  22.      * @return \Symfony\Component\HttpFoundation\JsonResponse
  23.      * @Route("/merge/", name="pdf_merge", methods={"post"})
  24.      */
  25.     public function pdfMerge(Request $requestPdfService $pdfServiceUploadService $uploadService) {
  26.         
  27.         $result = [
  28.             "url_file" => null
  29.         ];
  30.         $localPdfDir $this->getParameter("upload_pdf_dir");
  31.         
  32.         if($request->isMethod("post")) {
  33.             $files $request->files;
  34.             $pdfFiles = [];
  35.             
  36.              if(!is_null($files) && sizeof($files) > 0) {
  37.              
  38.                  /** @var UploadedFile $file */
  39.                 foreach ($files as $file) {
  40.                     if($file->getMimeType() == "application/pdf") {
  41.                         $pdfFiles[] = $uploadService->uploadFile($file$localPdfDir);
  42.                     }
  43.                 }
  44.                 
  45.                 if(!empty($pdfFiles)) {
  46.                     $pdfMerged $pdfService->pdfMerge($pdfFiles);
  47.                     $result["url_file"] = $request->getSchemeAndHttpHost() . $pdfMerged;
  48.                 }
  49.             }
  50.         }
  51.         
  52.         return $this->json($resultResponse::HTTP_OK);
  53.     }
  54. }