我正在使用 Zend,并且在 webroot 之外有一些我希望能够提供的文件。我尝试了两种方法,这两种方法都适用于除 IE 8 或更低版本之外的所有浏览器。
我尝试过的两种(工作)方法如下:
// Approach #1
header('Content-Type: application/pdf');
header("Pragma: ");
header("Content-Disposition: attachment; filename=\"$filename\"");
//header('Content-Transfer-Encoding: binary');
header("Pragma: no-cache");
header("Expires: 0");
readfile($file);
// Approach #2
$this->getResponse()
->setHeader('Content-Disposition', "attachment; filename=$filename")
->setHeader('Content-type', 'application/x-pdf');
fpassthru($file);
就像我说的,这两种方法都适用于现代浏览器(甚至是 IE9),但不适用于旧版本的 IE。我得到的错误如下:http ://cl.ly/image/1G3x370b1s09
我已经查看了有关该主题的几篇文章,并尝试了更多不同的标题组合,我什至无法计算。是否有更安全的方法来处理不会导致旧浏览器出现问题的此功能?
谢谢!