loo*_*ool 10 pdf inline content-disposition mime-types microsoft-edge
即使我没有使用Win 10的预发布版本,但是最新通过Windows Update下载,我仍然遇到了之前报道并在Microsoft Edge PDF内联问题下回答的相同问题.
在将我的Win 8.1机器升级到Win 10并测试我的ASP.NET应用程序后,我遇到了显示内联pdf文件的问题.
这是我的ASP.NET应用程序中的C#代码:
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition","inline;filename=some.pdf");
Response.BinaryWrite(pdfArray);
Response.End();
Run Code Online (Sandbox Code Playgroud)
以上适用于所有浏览器,但在Edge上,它会给我以下错误:
无法打开PDF有些东西使这个PDF无法打开.
我究竟做错了什么?
小智 12
从我在Microsoft Connect上的解决方法复制.
警告:如果/当Microsoft解决此问题时,这是一个完整的黑客攻击并且存在破坏的风险.
每当您查看PDF时,您都会看到Edge发出两个请求.对我来说,看起来浏览器正在发送初始请求,然后PDF查看器在打开时发出自己的请求.如果你查看第二个请求中的标题,你会看到一个奇怪的DLNA标题,这应该只是用于媒体流,但这导致我的解决方法......
在处理程序或页面中收到请求时,请检查用户代理字符串是否包含"Edge/12".如果没有,请正常发送PDF.如果是,请继续执行步骤#2.
检查HTTP标头"GetContentFeatures.DLNA.ORG"是否存在.如果没有,则表示请求来自浏览器.只需发回"application/pdf"的Content-Type标题和空体.如果标题存在,则请求来自PDF查看器,您可以正常发送PDF.
基本上,处理程序将第一个请求视为HEAD请求,然后如果我们确定请求来自PDF查看器,则使用完整PDF进行响应.我们在这里运行的风险是,如果Microsoft稍后删除该DLNA标头,Edge将无法正确呈现PDF.希望Microsoft能够在他们的浏览器中修复此问题,并且不需要此解决方法.
| 归档时间: |
|
| 查看次数: |
8787 次 |
| 最近记录: |