Example #1
0
 /**
  * 文件下载
  */
 public function downloadAction()
 {
     // 返回值数组
     $result = array('success' => true);
     // 获取参数
     $request = $this->getRequest()->getParams();
     $id = $request['id'];
     $source = isset($request['source']) ? $request['source'] : '';
     $now = date('Y-m-d H:i:s');
     $user_session = new Zend_Session_Namespace('user');
     $user = $user_session->user_info['employee_id'];
     $upload = new Dcc_Model_Upload();
     $record = new Dcc_Model_Record();
     $file = $upload->getOne($id);
     $path = $file['path'];
     $name = $file['name'];
     if ($source == 'edit') {
         $source = '日常维护';
     } else {
         if ($source == 'files') {
             $source = '文件检索';
         } else {
             if ($source == 'mine') {
                 $source = '我的文档';
             }
         }
     }
     if (count($file) > 0 && $path) {
         $data = array('type' => "files", 'table_name' => "oa_doc_upload", 'table_id' => $id, 'handle_user' => $user, 'handle_time' => $now, 'action' => "下载", 'ip' => $_SERVER['REMOTE_ADDR'], 'source' => $source);
         try {
             $record->insert($data);
             $this->operate("下载");
         } catch (Exception $e) {
             $result['result'] = false;
             $result['info'] = $e->getMessage();
             echo Zend_Json::encode($result);
             exit;
         }
         $filename = $name;
         header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
         header("Pragma: can-cache");
         header("Content-type: application/octet-stream");
         $ua = $_SERVER['HTTP_USER_AGENT'];
         if (preg_match('/MSIE/', $ua)) {
             header("Content-disposition: attachment;filename=\"" . urlencode($filename) . "\"");
         } elseif (preg_match('/FireFox/', $ua)) {
             header("Content-disposition: attachment;filename*=\"utf-8''" . $filename . "\"");
         } else {
             header("Content-disposition: attachment;filename=\"" . $filename . "\"");
         }
         readfile($path);
         exit;
     } else {
         // 文件不存在
         // 返回值数组
         $result['result'] = false;
         $result['info'] = '文件不存在';
         echo Zend_Json::encode($result);
         exit;
     }
 }