/** * 文件下载 */ 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; } }