2

我试图弄清楚当文件作为附件发送时是否需要“Content-Disposition:attachment; filename=file_name”,并且我有兴趣通过存储(驱动器)上的原始名称保留它。看起来这是检索原始文件名的唯一方法,但是 RFC 在它上面很混乱(链接到 RFC)。它使用诸如“应该”而不是“必须”之类的词。WIKI(指向 WIKI 的链接)说得更好,但这不是我可以带给客户的 RFC。想法?

4

1 回答 1

2

当然,标头是可选的,但如果您确实喜欢

  • 文件是内联显示还是另存为附件,或者
  • 如果将其保存为附件,建议的文件名应该是什么

浏览器或用户代理不受此标头约束,但将其视为建议。浏览器的实际行为可能很复杂,但通常,在没有此标头的情况下,浏览器将主要根据其 Mime 类型决定适当的操作过程,如果它是无法识别的 Mime 类型,它通常会默认保存为一个附件。

使用 Content-Disposition 标头可让您在以下情况下进行控制

  • 您发送的内容具有 Mime 类型,收件人的浏览器可以内联显示,但您不希望它这样做,而是将其作为下载提供。
  • 您正在发送可能由收件人保存到磁盘的内容,并且您想指定文件名在保存时应默认为什么。如果没有这些信息,浏览器通常会根据 URL 组成一个文件名,这可能不是一个合理的文件名(例如,如果从脚本提供所有内容,您不希望它是脚本的名称)。
于 2009-06-02T05:45:11.807 回答