_filesystem = $filesystem; $this->_transferAdapter = $adapterFactory->create(); $this->_uploaderFactory = $uploaderFactory; } /** * Upload preview image * * @param string $scope the request key for file * @param string $destinationPath path to upload directory * @return bool * @throws \Magento\Framework\Exception\LocalizedException */ public function uploadPreviewImage($scope, $destinationPath) { if (!$this->_transferAdapter->isUploaded($scope)) { return false; } if (!$this->_transferAdapter->isValid($scope)) { throw new \Magento\Framework\Exception\LocalizedException( new \Magento\Framework\Phrase('Uploaded image is not valid') ); } $upload = $this->_uploaderFactory->create(['fileId' => $scope]); $upload->setAllowCreateFolders(true); $upload->setAllowedExtensions($this->_allowedExtensions); $upload->setAllowRenameFiles(true); $upload->setFilesDispersion(false); if (!$upload->checkAllowedExtension($upload->getFileExtension())) { throw new \Magento\Framework\Exception\LocalizedException( new \Magento\Framework\Phrase('Invalid image file type.') ); } if (!$upload->save($destinationPath)) { throw new \Magento\Framework\Exception\LocalizedException( new \Magento\Framework\Phrase('Image can not be saved.') ); } return $destinationPath . '/' . $upload->getUploadedFileName(); } }