src/Controller/FileUploadController.php line 25

  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Gallery;
  4. use App\Repository\PageRepository;
  5. use App\Services\SpacesUploader;
  6. use App\Services\FileUploader;
  7. use App\Services\PageService;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Request;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class FileUploadController extends AbstractController
  13. {
  14.     private EntityManagerInterface $entityManager;
  15.     public function __construct(EntityManagerInterface $entityManager)
  16.     {
  17.         $this->entityManager $entityManager;
  18.     }
  19.     #[Route('/file/upload'name'file_upload'requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]
  20.     public function index(Request $requestSpacesUploader $spacesUploader)
  21.     {
  22.         $gallery = new Gallery();
  23.         $brochureFile $request->files->get('file');
  24.         $brochureFileName $spacesUploader->upload($brochureFile);
  25.         $gallery->setImage($brochureFileName);
  26.         $gallery->setLocale('hy');
  27.         $gallery->setIsPrint(false);
  28.         $gallery->setCompressedImage($brochureFileName);
  29.         $gallery->setDocumentNumber($request->get('document_id'));
  30.         $gallery->setLetterId($request->get('letter_id'));
  31.         $gallery->setCreatedAt(new \DateTime());
  32.         $gallery->setUser($this->getUser());
  33.         $gallery->setTemplateId($request->get('template_id'));
  34.         $this->entityManager->persist($gallery);
  35.         $this->entityManager->flush();
  36.         return $this->json([
  37.             'success' => true,
  38.             'id' => $gallery->getId()
  39.         ]);
  40.     }
  41.     #[Route('/file/upload/edit/{id}'name'file_upload_edit'requirements: ['_locale' => 'en|ru|hy'], defaults: ['_locale' => 'ru'])]
  42.     public function indexEdit(Request $requestGallery $gallery)
  43.     {
  44.         $gallery->setIsPrint(true);
  45.         $this->entityManager->flush();
  46.         return $this->json([
  47.             'success' => true
  48.         ]);
  49.     }
  50.     #[Route('/page/image/upload'name'page_file_upload')]
  51.     public function pageImageUpload(Request $requestFileUploader $fileUploaderPageRepository  $pageRepositoryPageService $pageService)
  52.     {
  53.         $brochureFile $request->files->get('file');
  54.         $field $request->get('field');
  55.         $pageId $request->get('pageId');
  56.         $brochureFileName $fileUploader->upload($brochureFile);
  57.         $page $pageRepository->find($pageId);
  58.         $setter $pageService->generateSetter($field);
  59.         $page->$setter($brochureFileName);
  60.         $this->entityManager->persist($page);
  61.         $this->entityManager->flush();
  62.         return $this->json([
  63.             'success' => 'success',
  64.             'fileName'=>$brochureFileName,
  65.             'field'=>$field
  66.         ]);
  67.     }
  68. }