Esempio n. 1
0
 /**
  * 文件查看
  */
 public function viewAction()
 {
     // 返回值数组
     $result = array('convert' => false, 'success' => true);
     // 获取参数
     $request = $this->getRequest()->getParams();
     $now = date('Y-m-d H:i:s');
     $user_session = new Zend_Session_Namespace('user');
     $user = $user_session->user_info['employee_id'];
     $id = $request['id'];
     // 根据id获取在线浏览路径
     $upload = new Dcc_Model_Upload();
     $record = new Dcc_Model_Record();
     $file = $upload->fetchRow("id = '{$id}'");
     if (count($file) > 0 && $file->view_path && is_file($file->view_path)) {
         // swf文件已经存在,直接返回浏览即可
         $result['convert'] = true;
         $viewPath = $file->view_path;
     } else {
         // 文件转换 TODO
         $convertObj = new Dcc_Model_FileCovert();
         $viewPath = "";
         if ($file->path && is_file($file->path) && $convertObj->isSupport($file->type)) {
             // 此处应该使用绝对路径
             $path = str_replace("../", "/evolve/", $file->path);
             $name = substr($path, strripos($path, "/") + 1);
             $path = str_replace($name, "", $path);
             $absolutepath = $_SERVER['DOCUMENT_ROOT'] . $path;
             $viewPath = $convertObj->createPreview($absolutepath, $name);
             if (!$viewPath) {
                 $result['convert'] = false;
             } else {
                 // 转换回相对路径
                 $viewPath = str_replace($_SERVER['DOCUMENT_ROOT'] . "/evolve", "..", $viewPath);
                 $result['convert'] = true;
                 $fileData = array('view_path' => $viewPath);
                 try {
                     $upload->update($fileData, "id=" . $file->id);
                 } catch (Exception $e) {
                     $result['result'] = false;
                     $result['info'] = $e->getMessage();
                     echo Zend_Json::encode($result);
                     exit;
                 }
             }
         }
     }
     if ($result['convert'] == true) {
         $data = array('type' => "files", 'table_name' => "oa_doc_upload", 'table_id' => $file->id, 'handle_user' => $user, 'handle_time' => $now, 'action' => "在线浏览", 'ip' => $_SERVER['REMOTE_ADDR']);
         try {
             $record->insert($data);
             $this->operate("在线浏览");
         } catch (Exception $e) {
             $result['result'] = false;
             $result['info'] = $e->getMessage();
             echo Zend_Json::encode($result);
             exit;
         }
         $result['result'] = true;
         $result['viewpath'] = $viewPath;
         echo Zend_Json::encode($result);
         exit;
     } else {
         // 文件不存在
         // 返回值数组
         $result['result'] = false;
         $result['viewpath'] = '';
         echo Zend_Json::encode($result);
         exit;
     }
 }