相关疑难解决方法(0)

如何在<iframe>中打开PDF文件?

我想在iframe中打开pdf文件.我使用以下代码:

<a class="iframeLink" href="https://something.com/HTC_One_XL_User_Guide.pdf"
   jQuery1640737952376988841="85"> User guide </a>
Run Code Online (Sandbox Code Playgroud)

它在Firefox中正常运行,但它没有在IE8中打开.

有谁知道如何让它也适用于IE?

html javascript browser pdf iframe

32
推荐指数
3
解决办法
22万
查看次数

生成PDF,IE和HTTPS出错

我正在将PDF流式传输到ASP.NET 2.0中的浏览器.这适用于所有浏览器,通过HTTP和所有浏览器,除了通过HTTPS的IE.据我所知,这曾经在所有版本的IE中工作(过去5年左右),但我们的客户最近才开始报告问题.我怀疑默认情况下禁止将加密页面保存到磁盘安全选项,并且在某些时候默认启用(Internet选项 - >高级 - >安全性).关闭此选项有助于作为解决方案,但作为长期解决方案不可行.

我收到的错误消息是:

Internet Explorer无法从www.sitename.com下载OutputReport.aspx.

Internet Explorer无法打开此Internet站点.请求的网站不可用或无法找到.请稍后再试.

用于创建PDF的工具是DataDynamics的 ActiveReports .创建PDF后,下面是发送它的代码:

Response.ClearContent()
Response.ClearHeaders()
Response.AddHeader("cache-control", "max-age=1")
Response.ContentType = "application/pdf"
Response.AddHeader("content-disposition", "attachment; filename=statement.pdf")
Response.AddHeader("content-length", mem_stream.Length.ToString)
Response.BinaryWrite(mem_stream.ToArray())
Response.Flush()
Response.End()  
Run Code Online (Sandbox Code Playgroud)

注意:如果我没有明确指定缓存控制,那么.NET代表我发送no-cache,所以我尝试将cache-control设置为:private或public或maxage =#,但这些似乎都不起作用.

这是扭曲:当我运行Fiddler检查响应头时,一切正常.我收到的标题是:

HTTP/1.1 200 OK
缓存控制:max-age = 1
日期:2009年7月29日星期三17:57:58 GMT
内容类型:application/pdf
服务器:Microsoft-IIS/6.0
MicrosoftOfficeWebServer:5.0_Pub
X-Powered-By :ASP.NET
X-AspNet-Version:2.0.50727
content-disposition:attachment; filename = statement.pdf
Content-Encoding:gzip
Vary:Accept-Encoding
Transfer-Encoding:chunked

一旦我关闭Fiddler并再次尝试,它就会再次失败.我注意到的另一件事是,当Fiddler正在运行时,我得到一个这个网站的安全证书警告消息有问题,我必须点击继续到这个网站(不推荐)才能通过.当Fiddler关闭时,我没有遇到此安全警告,它立即失败.

我很好奇Fiddler和浏览器之间发生了什么,以便它在Fiddler运行时运行但在不运行时会中断,但更重要的是,是否有人有任何想法如何更改我的代码以便将PDF流式传输到IE而无需进行更改到客户端机器?

更新: Fiddler问题得到解决,非常感谢EricLaw,所以现在它的行为始终如一(破坏,有或没有Fiddler运行).

基于谷歌搜索,似乎有大量关于同一问题的报告遍布整个网络,每个报告都有自己特定的响应标题组合,似乎可以解决各个案例的问题.我已经尝试了很多这些建议,包括添加ETag,LastModified日期,删除Vary标头(使用Fiddler)以及Cache-Control和/或Pragma标头的几十种组合.我尝试了ContentType的"Content-Transfer-Encoding:binary"以及"application/force-download".到目前为止,没有任何帮助.有一些 Microsoft 知识库 文章,所有这些都表明Cache-Control:no-cache是罪魁祸首.还有其他想法吗?

更新:顺便说一句,为了完整性,Excel和Word输出也会出现同样的问题.

更新:没有取得任何进展.我通过电子邮件将.SAZ文件从Fiddler发送给EricLaw,他在调试IE时能够重现这个问题,但还没有解决方案.赏金即将到期......

pdf asp.net https internet-explorer fiddler

12
推荐指数
1
解决办法
2万
查看次数

在IE9 +上显示base64 pdf的解决方法

我想将PDF转换为base64并在浏览器上显示.

问题是,以下代码适用于Firefox和Chrome

<iframe src="data:application/pdf;base64,encodeString></iframe>
Run Code Online (Sandbox Code Playgroud)

但不是在IE 9 +中,假设用户正在使用adobe reader插件,是否有任何jquery插件/解决方法允许在iframe上嵌入base64 pdf?谢谢

pdf iframe base64 internet-explorer cross-browser

4
推荐指数
2
解决办法
2万
查看次数