/** * Construct * * @param \Magento\Framework\App\Helper\Context $context * @param \Magento\Downloadable\Helper\File $fileHelper * @param \Magento\CatalogImportExport\Model\Import\UploaderFactory $uploaderFactory * @param \Magento\Framework\App\ResourceConnection $resource * @param \Magento\Framework\Filesystem $filesystem */ public function __construct(\Magento\Framework\App\Helper\Context $context, \Magento\Downloadable\Helper\File $fileHelper, \Magento\CatalogImportExport\Model\Import\UploaderFactory $uploaderFactory, \Magento\Framework\App\ResourceConnection $resource, \Magento\Framework\Filesystem $filesystem) { parent::__construct($context); $this->fileHelper = $fileHelper; $this->fileUploader = $uploaderFactory->create(); $this->fileUploader->init(); $this->fileUploader->setAllowedExtensions($this->getAllowedExtensions()); $this->fileUploader->removeValidateCallback('catalog_product_image'); $this->connection = $resource->getConnection('write'); $this->mediaDirectory = $filesystem->getDirectoryWrite(DirectoryList::ROOT); }
/** * Returns an object for upload a media files * * @return \Magento\CatalogImportExport\Model\Import\Uploader * @throws \Magento\Framework\Exception\LocalizedException */ protected function _getUploader() { if (is_null($this->_fileUploader)) { $this->_fileUploader = $this->_uploaderFactory->create(); $this->_fileUploader->init(); $dirConfig = DirectoryList::getDefaultConfig(); $dirAddon = $dirConfig[DirectoryList::MEDIA][DirectoryList::PATH]; $DS = DIRECTORY_SEPARATOR; if (!empty($this->_parameters[\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR])) { $tmpPath = $this->_parameters[\Magento\ImportExport\Model\Import::FIELD_NAME_IMG_FILE_DIR]; } else { $tmpPath = $dirAddon . $DS . $this->_mediaDirectory->getRelativePath('import'); } if (!$this->_fileUploader->setTmpDir($tmpPath)) { throw new \Magento\Framework\Exception\LocalizedException(__('File directory \'%1\' is not readable.', $tmpPath)); } $destinationDir = "catalog/product"; $destinationPath = $dirAddon . $DS . $this->_mediaDirectory->getRelativePath($destinationDir); $this->_mediaDirectory->create($destinationPath); if (!$this->_fileUploader->setDestDir($destinationPath)) { throw new \Magento\Framework\Exception\LocalizedException(__('File directory \'%1\' is not writable.', $destinationPath)); } } return $this->_fileUploader; }
/** * Returns an object for upload a media files * * @return \Magento\CatalogImportExport\Model\Import\Uploader * @throws \Magento\Framework\Model\Exception */ protected function _getUploader() { if (is_null($this->_fileUploader)) { $this->_fileUploader = $this->_uploaderFactory->create(); $this->_fileUploader->init(); $tmpPath = $this->_mediaDirectory->getAbsolutePath('import'); if (!$this->_fileUploader->setTmpDir($tmpPath)) { throw new \Magento\Framework\Model\Exception(sprintf("File directory '%s' is not readable.", $tmpPath)); } $destinationDir = "catalog/product"; $destinationPath = $this->_mediaDirectory->getAbsolutePath($destinationDir); $this->_mediaDirectory->create($destinationDir); if (!$this->_fileUploader->setDestDir($destinationPath)) { throw new \Magento\Framework\Model\Exception(sprintf("File directory '%s' is not writable.", $destinationPath)); } } return $this->_fileUploader; }