我使用此代码通过PHP将PDF发送给访问者([link] [1]):
session_start();
$fileName = '0-1.pdf';
$file = '../invoices/'. $fileName;
if (file_exists($file)) {
$size = filesize($file);
header('Content-Disposition: attachment; filename="'. $fileName .'"');
header('Content-Length: '.$size);
header('Content-type: application/octetstream');
#header('Content-type: application/pdf');
echo file_get_contents($file);
}
它适用于Chrome,FF和IE 9但在IE 8上失败。
失败的原因是
session_start();
如果我将其删除,它也可以在IE 8中使用。
不幸的是我需要会话。由于通过PHP传递PDF的全部原因是执行身份验证检查。所以我需要会话ID来检查当前用户是否被允许访问PDF。
如何在IE 8中使用头文件session_start()发送下载?
答案 0 :(得分:3)
刚刚找到解决方案。
Aftter session_start()
我必须设置theese标头才能让它与IE 8一起使用:
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: public");
奇怪的行为......但它现在有效: - )