Example #1
0
 /**
  * @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');
 }
Example #2
0
 /**
  * @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;
 }
Example #3
0
 /**
  * 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;
 }