<?php
namespace App\Service\WB\Subscriber;
use App\Service\Upload\AbstractUploadableEntity;
use App\Service\Upload\UploadFileService;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\Request;
class ImportProductFileUploadSubscriber implements EventSubscriberInterface
{
private UploadFileService $uploadFileService;
public function __construct(UploadFileService $uploadFileService)
{
$this->uploadFileService = $uploadFileService;
}
public static function getSubscribedEvents()
{
return array(
'easy_admin.pre_persist' => array('postFile'),
);
}
function postFile(GenericEvent $event) {
$result = $event->getSubject();
$method = $event->getArgument('request')->getMethod();
if (! $result instanceof AbstractUploadableEntity || $method !== Request::METHOD_POST) {
return;
}
if ($result->getFile() instanceof UploadedFile) {
$url = $this->uploadFileService->saveToDisk($result->getFile());
$result->setFile($url);
}
}
}