时间: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来读取