src/Service/WB/Subscriber/ImportProductFileUploadSubscriber.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Service\WB\Subscriber;
  3. use App\Service\Upload\AbstractUploadableEntity;
  4. use App\Service\Upload\UploadFileService;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. use Symfony\Component\EventDispatcher\GenericEvent;
  7. use Symfony\Component\HttpFoundation\File\UploadedFile;
  8. use Symfony\Component\HttpFoundation\Request;
  9. class ImportProductFileUploadSubscriber implements EventSubscriberInterface
  10. {
  11.     private UploadFileService $uploadFileService;
  12.     public function __construct(UploadFileService $uploadFileService)
  13.     {
  14.         $this->uploadFileService $uploadFileService;
  15.     }
  16.     public static function getSubscribedEvents()
  17.     {
  18.         return array(
  19.             'easy_admin.pre_persist' => array('postFile'),
  20.         );
  21.     }
  22.     function postFile(GenericEvent $event) {
  23.         $result $event->getSubject();
  24.         $method $event->getArgument('request')->getMethod();
  25.         if (! $result instanceof AbstractUploadableEntity || $method !== Request::METHOD_POST) {
  26.             return;
  27.         }
  28.         if ($result->getFile() instanceof UploadedFile) {
  29.             $url $this->uploadFileService->saveToDisk($result->getFile());
  30.             $result->setFile($url);
  31.         }
  32.     }
  33. }