Example #1
0
 /**
  * Retrieve Resource file handle (socket, file pointer etc)
  *
  * @return \Magento\Framework\Filesystem\File\ReadInterface
  * @throws CoreException|\Exception
  */
 protected function _getHandle()
 {
     if (!$this->_resourceFile) {
         throw new CoreException(__('Please set resource file and link type.'));
     }
     if (is_null($this->_handle)) {
         if ($this->_linkType == self::LINK_TYPE_URL) {
             $path = $this->_resourceFile;
             $protocol = strtolower(parse_url($path, PHP_URL_SCHEME));
             if ($protocol) {
                 // Strip down protocol from path
                 $path = preg_replace('#.+://#', '', $path);
             }
             $this->_handle = $this->fileReadFactory->create($path, $protocol);
         } elseif ($this->_linkType == self::LINK_TYPE_FILE) {
             $this->_workingDirectory = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA);
             $fileExists = $this->_downloadableFile->ensureFileInFilesystem($this->_resourceFile);
             if ($fileExists) {
                 $this->_handle = $this->_workingDirectory->openFile($this->_resourceFile);
             } else {
                 throw new CoreException(__('Invalid download link type.'));
             }
         } else {
             throw new CoreException(__('Invalid download link type.'));
         }
     }
     return $this->_handle;
 }
Example #2
0
 /**
  * Add Link File info into $linkData
  *
  * @param array $linkData
  * @param LinkInterface $link
  * @return array
  */
 protected function addLinkFile(array $linkData, LinkInterface $link)
 {
     $linkFile = $link->getLinkFile();
     if ($linkFile) {
         $file = $this->downloadableFile->getFilePath($this->linkModel->getBasePath(), $linkFile);
         if ($this->downloadableFile->ensureFileInFilesystem($file)) {
             $linkData['file'][0] = ['file' => $linkFile, 'name' => $this->downloadableFile->getFileFromPathFile($linkFile), 'size' => $this->downloadableFile->getFileSize($file), 'status' => 'old', 'url' => $this->urlBuilder->addSessionParam()->getUrl('adminhtml/downloadable_product_edit/link', ['id' => $link->getId(), 'type' => 'link', '_secure' => true])];
         }
     }
     return $linkData;
 }
Example #3
0
 /**
  * Add Sample File info into $sampleData
  *
  * @param array $sampleData
  * @param SampleInterface $sample
  * @return array
  */
 protected function addSampleFile(array $sampleData, SampleInterface $sample)
 {
     $sampleFile = $sample->getSampleFile();
     if ($sampleFile) {
         $file = $this->downloadableFile->getFilePath($this->sampleModel->getBasePath(), $sampleFile);
         if ($this->downloadableFile->ensureFileInFilesystem($file)) {
             $sampleData['file'][0] = ['file' => $sampleFile, 'name' => $this->downloadableFile->getFileFromPathFile($sampleFile), 'size' => $this->downloadableFile->getFileSize($file), 'status' => 'old', 'url' => $this->urlBuilder->addSessionParam()->getUrl('adminhtml/downloadable_product_edit/sample', ['id' => $sample->getId(), '_secure' => true])];
         }
     }
     return $sampleData;
 }
Example #4
0
 /**
  * Retrieve Resource file handle (socket, file pointer etc)
  *
  * @return \Magento\Framework\Filesystem\File\ReadInterface
  * @throws CoreException|\Exception
  */
 protected function _getHandle()
 {
     if (!$this->_resourceFile) {
         throw new CoreException(__('Please set resource file and link type.'));
     }
     if (is_null($this->_handle)) {
         if ($this->_linkType == self::LINK_TYPE_URL) {
             $this->_handle = $this->_filesystem->getRemoteResource($this->_resourceFile);
         } elseif ($this->_linkType == self::LINK_TYPE_FILE) {
             $this->_workingDirectory = $this->_filesystem->getDirectoryRead(Filesystem::MEDIA_DIR);
             $fileExists = $this->_downloadableFile->ensureFileInFilesystem($this->_resourceFile);
             if ($fileExists) {
                 $this->_handle = $this->_workingDirectory->openFile($this->_resourceFile);
             } else {
                 throw new CoreException(__('Invalid download link type.'));
             }
         } else {
             throw new CoreException(__('Invalid download link type.'));
         }
     }
     return $this->_handle;
 }