时间:2021-07-01 10:21:17 帮助过:16人阅读
function download_file($filename){
//below to provide the download
if (file_exists($filename)) {
$file = fopen($filename);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($filename));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filename) . ' bytes');
//ob_clean();
//flush();
readfile($filename);
fclose($file);
exit;
}
$this->_redirect('xxxxxxx');
[User:root Time:23:25:51 Path:/home/apache/web]$ cat index.html aaa输出这个生成的文件,并用header函数即可。
------解决方案--------------------
不可以,一个HTTP会话只能传递一种类型的数据
况且下载对用户而言是异步的
------解决方案--------------------
打开而不是保存,这是因为文件类型浏览器能够识别,比如chrome会显示pdf文件,而不是保存。
你需要额外添加一个Header响应头:
Content-Disposition: attachment; filename="$文件名"
至于如何添加,你可以让PHP来读取