Beispiel #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) {
             $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;
 }