Firefox 和 Content-Disposition header

标签 firefox header content-disposition

我对附件名称有疑问。当我在 google chrome 上调用该站点时,它会返回具有正确名称和扩展名的文件。我用 Internet Explorer 对其进行了测试,它也可以正常工作。问题仅在于 Firefox。我调用该网站,它返回文件标题上的第一个单词,没有扩展名。

例如,如果我想要一个名为“My report.docx”的文件,它会变成一个名为“My”的文件。我用谷歌搜索了一下,结果发现这是人们常见的问题,因为浏览器读取标题的方式不同。他们说解决方法是引用文件名:
Content-Disposition: attachment; filename=My Report.docx
现在是:(注意引号)
Content-Disposition: attachment; filename="My Report.docx"
但是,这对我不起作用。

在 chrome 上,它返回“My Report.docx”(实际上带有引号)。 Firefox 返回了一个奇怪的文件,该文件具有正确的扩展名和正确的名称,并且没有引号,但无法执行。这是正确的文件大小、正确的扩展名和正确的名称,但无法执行。它还在文件名之前和之后返回一个空格。

最佳答案

我知道这是一个非常古老的问题,但我最近遇到了同样的问题。解决方案是

  • 根据 RFC2184 对文件名进行编码或者,
  • 如果文件名中没有特殊字符,请在内容处置字符串中引用它。

  • 由于您已经尝试过 2,您可以尝试使用 1 并查看效果如何。

    通常我使用 ContentDisposition类为我生成我的标题:
    Dim contentDispositionHeader = New Net.Mime.ContentDisposition() With {.FileName = filename}
    Response.AddHeader("Content-Disposition", contentDispositionHeader.ToString())
    

    希望这可以帮助。

    关于Firefox 和 Content-Disposition header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9154415/

    相关文章:

    css - 背景位置距底部的偏移量 : opposite behaviour in Chrome and Firefox

    javascript - 在 google chrome 中显示 Pdf 文件的 Angularjs 代码不起作用,但适用于 Firefox

    C++ 头文件和类文件 - undefined reference

    内容处置文件名 "suggestion"始终被忽略。为什么?

    javascript - "Content-disposition"- 类似 Javascript 的行为

    jquery - 在 FF 上动态创建后输入文本不会自动对焦

    javascript - 下载属性在 Firefox 中不起作用

    php - 带有 Content-Disposition : attachment 的 PHP 中的文件下载问题

    html 100% 宽度页眉和页脚

    css - 在 wordpress 中创建固定标题