我在webroot之外保存了很多文档。
我想点击一个链接,打开一个新窗口(target =“_ blank”),然后强制下载找到的文件。
这是我到目前为止所得到的,但我的结果显示了浏览器弹出窗口中的gobble-de-gook,而不是强制下载到桌面:
function download($filelocation){
$filename = basename($filelocation);
if (file_exists($filelocation)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($filelocation));
ob_clean();
flush();
readfile($filelocation);
exit;
}
}
在新的浏览器窗口中,我只需使用特定路径调用该download()
函数即可。
它肯定会找到该文件,但现在我只是想知道我在header()中缺少什么来强制文件通过浏览器。
答案 0 :(得分:1)
错过了这个:
header("Content-Type: application/force-download");