/** * 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']; } }
/** * 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); }