review中修改了下载时的用户判断和输出下载的目标窗口

This commit is contained in:
Li Jianxuan 2011-11-08 08:04:11 +00:00
parent 32b30a6126
commit 5684a7ca1c
1 changed files with 54 additions and 40 deletions

View File

@ -410,7 +410,7 @@ class ReviewController extends Zend_Controller_Action
}
$list[] = '
<li>'.$v['realname'].' &nbsp;('.$v['filesize'].')
<span><a href="/review/downatt/id/'.$v['id'].'">下载</a></span>
<span><a href="/review/downatt/id/'.$v['id'].'" target="_blank">下载</a></span>
</li>
';
}
@ -432,47 +432,61 @@ class ReviewController extends Zend_Controller_Action
$id = $this->_request->getParam('id');
$sql = "select * from attachments where id='$id'";
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity())
{
try{
$sql = "select * from attachments where id='$id'";
$re = $this->db->query($sql);
$row = $re->fetch();
$fullPath = $this->view->config->upload.$row['filename'];
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
$re = $this->db->query($sql);
$row = $re->fetch();
$fullPath = $this->view->config->upload.$row['filename'];
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
switch ($ext) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
$content=file_get_contents($fullPath);
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$this->getResponse()->setHeader('Content-Type', 'application/octet-stream')
->setHeader('Content-Disposition','attachment; filename="'.$row['realname'].'"')
->setHeader('Content-Length', $fsize)
->setHeader('Content-Type','application/force-download')
->setHeader('Content-Type','application/download')
->setHeader('Content-Type',$ctype)
->setHeader('Content-Description','File Transfer')
->setHeader('Content-Transfer-Encoding','binary')
->setHeader('Expires',0)
->setHeader('Cache-Control','must-revalidate, post-check=0, pre-check=0')
->setHeader('Pragma','public')
->setBody($content);
$sql = "update attachments set downtimes=downtimes+1 where id = $id";
@$this->db->exec($sql);
}catch(Exception $e){
echo '文件读取出错,请稍后重试';
}
}else{
echo '读取用户信息出错,请先登录再下载附件';
}
$content=file_get_contents($fullPath);
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$this->getResponse()->setHeader('Content-Type', 'application/octet-stream')
->setHeader('Content-Disposition','attachment; filename="'.basename($fullPath).'"')
->setHeader('Content-Length', $fsize)
->setHeader('Content-Type','application/force-download')
->setHeader('Content-Type','application/download')
->setHeader('Content-Type',$ctype)
->setHeader('Content-Description','File Transfer')
->setHeader('Content-Transfer-Encoding','binary')
->setHeader('Expires',0)
->setHeader('Cache-Control','must-revalidate, post-check=0, pre-check=0')
->setHeader('Pragma','public')
->setBody($content);
}// downattAction 下载附件
}