Spaces:
No application file
No application file
| namespace Mautic\CoreBundle\Helper; | |
| use Mautic\CoreBundle\Exception\FilePathException; | |
| use Mautic\CoreBundle\Exception\FileUploadException; | |
| use Symfony\Component\HttpFoundation\File\Exception\FileException; | |
| use Symfony\Component\HttpFoundation\File\UploadedFile; | |
| class FileUploader | |
| { | |
| public function __construct( | |
| private FilePathResolver $filePathResolver | |
| ) { | |
| } | |
| /** | |
| * @param string $uploadDir | |
| * | |
| * @return string | |
| * | |
| * @throws FileUploadException | |
| */ | |
| public function upload($uploadDir, UploadedFile $file) | |
| { | |
| try { | |
| $fileName = $this->filePathResolver->getUniqueFileName($uploadDir, $file); | |
| $this->filePathResolver->createDirectory($uploadDir); | |
| try { | |
| $file->move($uploadDir, $fileName); | |
| return $fileName; | |
| } catch (FileException) { | |
| throw new FileUploadException('Could not upload file'); | |
| } | |
| } catch (FilePathException $e) { | |
| throw new FileUploadException($e->getMessage()); | |
| } | |
| } | |
| /** | |
| * @param string $path | |
| */ | |
| public function delete($path): void | |
| { | |
| $this->filePathResolver->delete($path); | |
| } | |
| } | |