Пример #1
0
 /**
  * Saves uploaded by Mage_Core_Model_File_Uploader file to DB with existence tests
  *
  * param $result should be result from Mage_Core_Model_File_Uploader::save() method
  * Checks in DB, whether uploaded file exists ($result['file'])
  * If yes, renames file on FS (!!!!!)
  * Saves file with unique name into DB
  * If passed file exists returns new name, file was renamed to (in the same context)
  * Otherwise returns $result['file']
  *
  * @param array $result
  * @return string
  */
 public function saveUploadedFile($result = array())
 {
     if ($this->checkDbUsage()) {
         $path = rtrim(str_replace(array('\\', '/'), DS, $result['path']), DS);
         $file = '/' . ltrim($result['file'], '\\/');
         $uniqueResultFile = $this->getUniqueFilename($path, $file);
         if ($uniqueResultFile !== $file) {
             $this->_filesystem->setWorkingDirectory($path);
             $this->_filesystem->rename($path . $file, $path . $uniqueResultFile);
         }
         $this->saveFile($path . $uniqueResultFile);
         return $uniqueResultFile;
     } else {
         return $result['file'];
     }
 }
Пример #2
0
 /**
  * Move image from temporary directory to normal
  *
  * @param string $file
  * @return string
  */
 protected function _moveImageFromTmp($file)
 {
     if (strrpos($file, '.tmp') == strlen($file) - 4) {
         $file = substr($file, 0, strlen($file) - 4);
     }
     $destinationFile = $this->_getUniqueFileName($file);
     /** @var $storageHelper Mage_Core_Helper_File_Storage_Database */
     $storageHelper = Mage::helper('Mage_Core_Helper_File_Storage_Database');
     if ($storageHelper->checkDbUsage()) {
         $storageHelper->renameFile($this->_getConfig()->getTmpMediaShortUrl($file), $this->_getConfig()->getMediaShortUrl($destinationFile));
         $this->_filesystem->delete($this->_getConfig()->getTmpMediaPath($file), $this->_baseTmpMediaPath);
         $this->_filesystem->delete($this->_getConfig()->getMediaPath($destinationFile), $this->_baseMediaPath);
     } else {
         $this->_filesystem->rename($this->_getConfig()->getTmpMediaPath($file), $this->_getConfig()->getMediaPath($destinationFile), $this->_baseTmpMediaPath, $this->_baseMediaPath);
     }
     return str_replace(DS, '/', $destinationFile);
 }