/** * Handle the uploaded file. * * @return UploadedFileInterface */ public function handleUpload() { /** @var $uploadedFile UploadedFileInterface */ $uploadedFile = FALSE; if ($this->formUtility->isMultiparted()) { // Default case $uploadedFile = GeneralUtility::makeInstance('Fab\\Media\\FileUpload\\MultipartedFile'); } elseif ($this->formUtility->isOctetStreamed()) { // Fine Upload plugin would use it if forceEncoded = false and paramsInBody = false $uploadedFile = GeneralUtility::makeInstance('Fab\\Media\\FileUpload\\StreamedFile'); } elseif ($this->formUtility->isUrlEncoded()) { // Used for image resizing in BE $uploadedFile = GeneralUtility::makeInstance('Fab\\Media\\FileUpload\\Base64File'); } if (!$uploadedFile) { $this->throwException('Could not instantiate an upload object... No file was uploaded?'); } $fileName = $this->getFileName($uploadedFile); $this->checkFileSize($uploadedFile->getSize()); $this->checkFileAllowed($fileName); $saved = $uploadedFile->setInputName($this->inputName)->setUploadFolder($this->uploadFolder)->setName($fileName)->save(); if (!$saved) { $this->throwException('Could not save uploaded file. The upload was cancelled, or server error encountered'); } // Optimize file if the uploaded file is an image. if ($uploadedFile->getType() == \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE) { $uploadedFile = ImageOptimizer::getInstance($this->storage)->optimize($uploadedFile); } return $uploadedFile; }