Extjs:
//gridpanel colums
var cm = [{header : '文件名稱',dataIndex :'doc_name',flex:1},
{header : '下載',dataIndex :'doc_name',width:120,renderer:downloadDoc}];
function downloadDoc(v){
var url=__path+"/action/data_manager/DownloadAction.class.php?path="+v+"";
return "<a href="+url+">下载</a>"
}
PHP :
<?php
$path= $_REQUEST["path"];
$arr=explode('.',$path);
$postfix=$arr[count($arr)-1];
$postfix=trim($postfix);
$file = '../../util/ContentTypes.php';
$arr = require $file;
$type= $arr[$postfix];
$url=dirname(__FILE__);
$arr=explode('\\',$url);
unset($arr[count($arr)-1]);
unset($arr[count($arr)-1]);
unset($arr[count($arr)-1]);
$base= implode("/",$arr)."/cww/database_backup/".$path;
header('Content-Description: File Transfer');
header('Content-Type:'.$type.';charset=utf-8');
header('Content-Disposition: attachment; filename='.basename($base));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($base));
ob_clean();
flush();
readfile($base);
exit();
?>