Zac*_*ese 11 php pdf https internet-explorer
这是我的问题.我正在尝试调用页面:foo.php?docID = bar并将PDF返回到屏幕,该屏幕在数据库中存储为BLOB.
以下是我的代码中实际返回PDF的部分:
$docID = isset($_REQUEST['docID']) ? $_REQUEST['docID'] : null;
if ($docID == null){
die("Document ID was not given.");
}
$results = getDocumentResults($docID);
if (verifyUser($user, $results['ProductId'])){
header('Content-type: application/pdf');
// this is the BLOB data from the results.
print $results[1];
}
else{
die('You are not allowed to view this document.');
}
Run Code Online (Sandbox Code Playgroud)
这在Firefox中运行得非常好.
但是,在IE中,它根本没有显示任何内容.如果我在另一个页面(即google.com),并输入网址转到此页面,它会说已经完成,但我仍然会在屏幕上显示google.com.
我检查了来自firefox和IE的响应的标题.它们完全相同.
有没有人有什么建议?需要更多信息?
编辑:如果它有帮助,这里是响应标题和内容的第一行:
HTTP/1.1 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 349930
Content-Type: application/pdf
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: PHP/5.1.2
Set-Cookie: PHPSESSID=cql3n3oc13crv3r46h2q04dvq4; path=/; domain=.example.com
Content-Disposition: inline; filename='downloadedFile.pdf'
X-Powered-By: ASP.NET
Date: Tue, 21 Apr 2009 16:35:59 GMT
%PDF-1.4
Run Code Online (Sandbox Code Playgroud)
编辑:此外,拉出pdf文件的页面实际上使用HTTPS而不是HTTP.
提前致谢,
〜扎克
Zac*_*ese 19
我弄清楚问题是什么.这是一个处理IE,HTTPS和插件的IE漏洞.(见这里)
这是一个缓存问题.当我设置:
header("Cache-Control: max-age=1");
header("Pragma: public");
Run Code Online (Sandbox Code Playgroud)
(见这里),PDF在缓存中的时间足够长,以便adobe reader add-on能够抓住它.
归档时间: |
|
查看次数: |
10908 次 |
最近记录: |