/** * Deletes row. Primary key value must be set before this function is called */ public function delete() { if ($this->isPrimaryKeyEmpty()) { throw new Gpf_Exception("Could not delete Row. Primary key values are empty"); } $this->load(); if ($this->getFileId() != "") { try { $file = new Gpf_Db_File(); $file->setFileId($this->getFileId()); $file->removeReference(); } catch (Gpf_DbEngine_Driver_Mysql_SqlException $e) { } } return parent::delete(); }
/** * Delete uploaded file from database or files directory * * @service uploaded_file delete * @param Gpf_Rpc_Params $params * @return Gpf_Rpc_Action */ public function deleteFile(Gpf_Rpc_Params $params) { $action = new Gpf_Rpc_Action($params); if ($action->existsParam('fileid') && $action->getParam('fileid') != '') { $dbRow = new Gpf_Db_File(); $dbRow->setFileId($action->getParam('fileid')); try { $dbRow->load(); } catch (Gpf_DbEngine_NoRow $e) { throw new Exception($this->_("Failed to delete file. File doesn't exist in database.")); } try { $dbRow->delete(); } catch (Gpf_Exception $e) { $action->addError(); $action->setErrorMessage($this->_('Failed to delete file from database.')); return $action; } } else { $fileUrl = $action->getParam('fileurl'); $fileName = substr($fileUrl, strrpos($fileUrl, '/') + 1); $file = new Gpf_Io_File(Gpf_Paths::getInstance()->getAccountDirectoryPath() . Gpf_Paths::FILES_DIRECTORY . $fileName); if (!$file->delete()) { $action->addError(); $action->setErrorMessage($this->_('Failed to delete file.')); } } $action->addOk(); return $action; }
private function getFileName($fileId) { $file = new Gpf_Db_File(); $file->setFileId($fileId); $file->load(); return $file->getFileName(); }