public function insertAction() { $message = array(); $insertTokenNamespace = new Zend_Session_Namespace("INSERT_TOKEN"); $topicId = $this->_getParam("tpid"); if ($this->_getParam('submit')) { if ($topicId) { //Check is topic belongs to this user $topicTbl = new VC_DbTable_Store_Topic(); $isBelongThisUser = $topicTbl->checkRecordExistMultiCond(array('id' => $topicId, 'user_id' => $this->userId)); if (!$isBelongThisUser) { throw new Zend_Exception("This topic does not belong you"); } if ($this->_getParam('title') && $this->_getParam('content')) { $insertData = array(); $insertData['title'] = $this->_getParam('title'); $insertData['content'] = $this->_getParam('content'); $insertData['root_link'] = $this->_getParam('root_link'); $insertData['topic_id'] = $topicId; $insertData['user_id'] = $this->userId; $insertData['post_date'] = date("Y-m-d"); $articleTbl = new VC_DbTable_Store_Article(); $articleId = $articleTbl->insert($insertData); //Move files from upload tmp to file $fileBus = new VC_Business_File(); $moveFile = $fileBus->moveTmpFileToFile($this->userId, $insertTokenNamespace->insertToken, $articleId); unset($insertTokenNamespace->insertToken); unset($insertTokenNamespace); $this->_redirect("article/view/?tpid=" . $topicId); } else { if (!$this->_getParam('title')) { $message[] = "You have to input title"; } if (!$this->_getParam('content')) { $message[] = "You have to input content"; } } //$this->view->topicInfo = $topicTbl->findById($topicId); } else { $message[] = "You have to choose topic"; } } else { //Create insert token $time = time(); $insertTokenNamespace->insertToken = $time; $this->view->insertToken = $time; } $menuObj = new VC_Business_MenuFactory(); $groupAndTopic = $menuObj->getGroupsAndTopicsOfUser($this->userId); //echo "<pre>"; var_dump($groupAndTopic); echo "</pre>"; die; $this->view->groupAndTopic = $groupAndTopic; $this->view->data = $this->_getAllParams(); $this->view->message = $message; $this->view->insertToken = $insertTokenNamespace->insertToken; //Get all temp file uploaded of this article $uploadTmpTbl = new VC_DbTable_Common("upload_tmp", "id"); $this->view->listUploadFiles = $uploadTmpTbl->fetchAll("user_id = " . $this->userId . " AND insert_token = '" . $insertTokenNamespace->insertToken . "'"); }
public function indexAction() { if ($this->userId == 0) { throw new VC_Exception("You have not permission"); } $invidualDir = 'u_' . $this->userId; $this->_helper->viewRenderer->setNoRender(); $this->_helper->getHelper('layout')->disableLayout(); $uploadRootDir = ROOT_PATH . '/Sources/store/public/uploads'; $uploadDir = $uploadRootDir . '/' . $invidualDir; if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777); copy($uploadRootDir . "/index.html", $uploadDir . "/index.html"); } $error = ""; $msg = ""; $config = VC_Config::getConfig(); $maxFileSize = 0; $valid = false; if (isset($config['file']['upload']['size'])) { $maxFileSize = $config['file']['upload']['size']; } else { $error = "System error, please contact to administrator to resolve this problem, thank you very much"; } $fileElementName = 'fileToUpload'; $upload = new Zend_File_Transfer_Adapter_Http("http"); $allowExt = explode(",", str_replace(" ", "", $config['file']['upload']['ext'])); $upload->addValidator('Extension', true, $allowExt); $upload->addValidator('FilesSize', true, array('min' => '10B', 'max' => $maxFileSize)); $upload->addValidator('Count', true, array('min' => 1, 'max' => 1)); $messages = array(); $files = $upload->getFileInfo(); if ($upload->isValid() && $upload->isUploaded()) { reset($files); $fileInputName = key($files); //Get file extension $fileName = $files[$fileInputName]['name']; $ext = substr($fileName, strrpos($fileName, ".")); $fileName = preg_replace("/[^a-z.0-9]/i", "", $_FILES[$fileInputName]['name']); $tempPath = $files[$fileInputName]['tmp_name']; $baseName = str_replace($ext, "", $fileName); //Name no ext if ("" == $fileName) { $fileName = time() . $ext; } if (file_exists($uploadDir . "/" . $fileName)) { $fileName = $baseName . "_" . time() . $ext; } if (move_uploaded_file($tempPath, $uploadDir . "/" . $fileName)) { $valid = true; } else { $error = "Could not upload file, please try again."; } } if ($valid) { //Save to upload_tmp in DB $uploadTmpTbl = new VC_DbTable_Common("upload_tmp", "id"); $uploadTmpData = array(); $uploadTmpData['file_name'] = $this->_getParam("file_name", $fileName); $uploadTmpData['user_id'] = $this->userId; $uploadTmpData['upload_date'] = date("Y-m-d"); $insertTokenNamespace = new Zend_Session_Namespace("INSERT_TOKEN"); $uploadTmpData['insert_token'] = $insertTokenNamespace->insertToken; $iconPath = VC_Business_File::getFileIcon($ext, '/uploads/' . $invidualDir . '/' . $fileName); $filePath = '/uploads/' . $invidualDir . '/' . $fileName; $uploadTmpData['icon_path'] = $iconPath; $uploadTmpData['file_path'] = $filePath; $uploadTmpTbl->insert($uploadTmpData); $result = array('error' => '', 'icon' => $iconPath, 'file' => $filePath, 'name' => $uploadTmpData['file_name']); echo Zend_Json_Encoder::encode($result, true); } else { $messages = $upload->getMessages(); $result = array('error' => implode("\n", $messages) . "\n" . $error, 'file' => ''); echo Zend_Json_Encoder::encode($result); } }