response-headers - IE 的内容处置内联文件名问题

标签 response-headers

我使用 aspx 页面在浏览器中显示带有内联 API 的 pdf。
使用 Chrome/Firefox 保存 pdf 时,从 header("Content-Disposition", "inline;filename=xyz.pdf") 获取文件名
但是在使用 IE 保存 pdf 时,它不会从 header("Content-Disposition", "inline;filename=xyz.pdf") 读取文件名。 .相反,它采用 aspx 名称。
技术细节
我有一个 xyz.aspx 页面。
xyz.aspx 页面将调用文档的 API。
然后从 API 下载的文档将通过内联传输到浏览器以显示 pdf 文档。
我将响应头设置如下并写入文件字节。

            HttpContext.Current.Response.ClearHeaders();

            Response.AddHeader("Content-Disposition", "inline;filename=\"" + Name + "\"");

            HttpContext.Current.Response.ContentType = "application/pdf";
  • 问题:
    在 IE 中保存打开的 pdf 时,它需要 xyz.aspx 而不是标题中的名称。
  • 要求:
    使用IE保存pdf时,需要以pdf文件名保存。

  • 我用谷歌搜索了很多,因为每个人都告诉了它的 IE 行为。我希望有人知道解决方案。
    注:我必须在浏览器中显示pdf然后保存。不要使用“附件”下载

    最佳答案

    确实有些版本的 IE 无法处理 ("Content-Disposition", "inline;filename=...")
    这是因为 filename=...最初用于附件处置。并非所有基于浏览器的 PDF 查看器都可以处理它。

    我看到的唯一解决方案是允许通过不同的 url 进行访问。
    假设您有一条通往 pdf 的路线,例如:/pdf/view .如果你把它改成 /pdf/view/filename并且您将应用程序配置为以与 /pdf/view 相同的方式处理此路由你的问题解决了。

    您也可以在网络服务器上重写下载 url。
    根据您的网络服务器,您有多种方法可以做到这一点。

    关于response-headers - IE 的内容处置内联文件名问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36177894/

    相关文章:

    javascript - ServiceWorker 源头

    c# - 从 C# 6 中的响应 header 中删除 SERVER

    java - 设置 X-Content-Type-Options 响应 header 会损坏 PNG 文件

    html - 能否直接在html页面中添加http响应头

    return - 如何将所有集成响应 header 返回给 API 网关中的最终调用者?

    javascript - 拒绝获取不安全 header "Content-Length"/从外部 mp3 读取 ID3 标签

    jQuery跨域请求响应头

    node.js - 如何将 Helmet 实现到 Node 服务器中? [没有 express ]

    http - HTTP响应头中max-age的timespan类型是什么?秒,分?

    go - 如何从http响应中提取某个 header [Set-Cookie]