/** * @param int $storage * @param int $callNum * @dataProvider updateFileDataProvider */ public function testSaveFile($storage, $callNum) { $this->configMock->expects($this->once())->method('getValue')->with(\Magento\Core\Model\File\Storage::XML_PATH_STORAGE_MEDIA, 'default')->will($this->returnValue($storage)); $dbModelMock = $this->getMockBuilder('Magento\\Core\\Model\\File\\Storage\\Database')->disableOriginalConstructor()->getMock(); $this->dbStorageFactoryMock->expects($this->exactly($callNum))->method('create')->will($this->returnValue($dbModelMock)); $dbModelMock->expects($this->exactly($callNum))->method('saveFile')->with('filename'); $this->helper->saveFile('media-dir/filename'); }
/** * @return $this */ public function saveFile() { if ($this->_isBaseFilePlaceholder && $this->_newFile === true) { return $this; } $filename = $this->_mediaDirectory->getAbsolutePath($this->getNewFile()); $this->getImageProcessor()->save($filename); $this->_coreFileStorageDatabase->saveFile($filename); return $this; }
/** * Process File Queue * * @return $this * @throws \Magento\Framework\Model\Exception */ public function processFileQueue() { if (empty($this->_fileQueue)) { return $this; } foreach ($this->_fileQueue as &$queueOptions) { if (isset($queueOptions['operation']) && ($operation = $queueOptions['operation'])) { switch ($operation) { case 'receive_uploaded_file': $src = isset($queueOptions['src_name']) ? $queueOptions['src_name'] : ''; $dst = isset($queueOptions['dst_name']) ? $queueOptions['dst_name'] : ''; /** @var $uploader \Zend_File_Transfer_Adapter_Http */ $uploader = isset($queueOptions['uploader']) ? $queueOptions['uploader'] : null; $path = dirname($dst); try { $rootDir = $this->_filesystem->getDirectoryWrite(\Magento\Framework\App\Filesystem::ROOT_DIR); $rootDir->create($rootDir->getRelativePath($path)); } catch (\Magento\Framework\Filesystem\FilesystemException $e) { throw new \Magento\Framework\Model\Exception(__('We can\'t create writeable directory "%1".', $path)); } $uploader->setDestination($path); if (empty($src) || empty($dst) || !$uploader->receive($src)) { /** * @todo: show invalid option */ if (isset($queueOptions['option'])) { $queueOptions['option']->setIsValid(false); } throw new \Magento\Framework\Model\Exception(__("The file upload failed.")); } $this->_fileStorageDb->saveFile($dst); break; default: break; } } $queueOptions = null; } return $this; }