/** * addVersion * @author Thomas Schedler <*****@*****.**> */ public function addVersion($_FILE_NAME) { $this->core->logger->debug('massiveart.files.File->addVersion()'); try { $this->_FILE_NAME = $_FILE_NAME; $this->intUserId = Zend_Auth::getInstance()->getIdentity()->id; $objFileData = $this->getModelFile()->getFileTable()->find($this->intId); if (count($objFileData) == 1) { $this->objFileData = $objFileData->current(); $this->strSegmentPath = $this->objFileData->path; /** * archive file now */ $this->archive(); /** * update file version data */ $arrUpdateData = array('archiver' => $this->intUserId, 'archived' => date('Y-m-d H:i:s'), 'downloadCounter' => $this->objFileData->downloadCounter); $strWhere = $this->objModelFile->getFileVersionTable()->getAdapter()->quoteInto('idFiles = ?', $this->objFileData->id); $strWhere .= $this->objModelFile->getFileVersionTable()->getAdapter()->quoteInto(' AND version = ?', $this->objFileData->version); $this->objModelFile->getFileVersionTable()->update($arrUpdateData, $strWhere); /** * upload new version */ $this->upload(true); $this->objFileData->isImage = $this->getIsImage(); $this->objFileData->filename = $this->objFileData->fileId . '.' . $this->strExtension; $this->objFileData->size = $this->dblSize; $this->objFileData->extension = $this->strExtension; $this->objFileData->mimeType = $this->strMimeType; $this->objFileData->version++; /** * update file data */ $this->objFileData->save(); /** * insert new version data */ $arrInsertData = array('idFiles' => $this->objFileData->id, 'fileId' => $this->objFileData->fileId, 'idUsers' => $this->intUserId, 'path' => $this->objFileData->path, 'idParent' => $this->objFileData->idParent, 'idParentTypes' => $this->objFileData->idParentTypes, 'isS3Stored' => 0, 'isImage' => $this->objFileData->isImage, 'filename' => $this->objFileData->filename, 'creator' => $this->intUserId, 'created' => date('Y-m-d H:i:s'), 'size' => $this->objFileData->size, 'extension' => $this->objFileData->extension, 'mimeType' => $this->objFileData->mimeType, 'version' => $this->objFileData->version); $this->objModelFile->getFileVersionTable()->insert($arrInsertData); /** * upate image file attributes */ if ($this->getIsImage()) { $arrUpdateAttributeData = array('xDim' => $this->intXDim, 'yDim' => $this->intYDim); $strWhere = $this->objModelFile->getFileAttributeTable()->getAdapter()->quoteInto('idFiles = ?', $this->objFileData->id); $this->objModelFile->getFileAttributeTable()->update($arrUpdateAttributeData, $strWhere); } } else { throw new Exception('Not able to add new version, because there is no file with given ID!'); } } catch (Exception $exc) { $this->core->logger->err($exc); } }
/** * add * @author Thomas Schedler <*****@*****.**> * @version 1.0 */ public function add($_FILE_NAME) { $this->core->logger->debug('massiveart.files.File->add()'); try { $this->_FILE_NAME = $_FILE_NAME; $this->strFileId = uniqid(); $this->upload(); $this->getModelFile(); $this->intUserId = Zend_Auth::getInstance()->getIdentity()->id; $this->intVersion = 1; $arrInsertData = array('fileId' => $this->strFileId, 'idUsers' => $this->intUserId, 'path' => '', 'idParent' => $this->intParentId, 'idParentTypes' => $this->intParentTypeId, 'isS3Stored' => 0, 'isImage' => $this->getIsImage(), 'filename' => $this->strFileId . '.' . $this->strExtension, 'creator' => $this->intUserId, 'created' => date('Y-m-d H:i:s'), 'size' => $this->dblSize, 'extension' => $this->strExtension, 'mimeType' => $this->strMimeType, 'version' => $this->intVersion); $this->intId = $this->objModelFile->getFileTable()->insert($arrInsertData); if ($this->getIsImage()) { $arrInsertAttributeData = array('idFiles' => $this->intId, 'xDim' => $this->intXDim, 'yDim' => $this->intYDim); $this->objModelFile->getFileAttributeTable()->insert($arrInsertAttributeData); } } catch (Exception $exc) { $this->core->logger->err($exc); } }