是什么决定了浏览器是打开还是下载.txt文件?

时间:2013-10-08 20:34:46

标签: file browser download rendering ascii

首先我要说的是,我知道你可以在标题中指定Content-Disposition并使用“attachment”或“inline”,这个问题 NOT 关于此(至少不直接)。

我有一个扩展名为.txt的文件。我注意到依赖于.txt文件内容的不同浏览器行为。如果我的文件包含字母数字字符,并且我将文件的位置粘贴到(例如)Chrome的网址栏中,则该文件会在浏览器中打开。

如果我的文件包含"SI"字符,则会下载该文件而不是在浏览器中打开。

起初我认为可能是因为“SI”是控制代码,但“CR”和“LF”也是控制代码,当文件存在时,文件显示在浏览器中。当.txt文件中存在“DC2”字符时,该文件甚至会在Chrome中打开。

我的问题是:在文件内容级别,决定文件是否显示或下载的内容是什么?

(我知道这可能因浏览器而异,但是如果有一些东西至少有些可靠,那么知道会有所帮助)

提前致谢。

编辑(根据Sam的回答):

当“SI”或“DC2”字符位于文本文件的前1000个字符中时,它将被下载,如果这些字符位于前1000个左右的字符之后,则文件将显示在浏览器中。 / p>

1 个答案:

答案 0 :(得分:2)

当您向其发送文件时,浏览器的行为将基于您的服务器发送的内容类型标头。如果您没有自己明确设置,您的Web服务器可能会尝试根据文件的前几个字节做出最佳猜测。

请参阅http://httpd.apache.org/docs/2.2/mod/mod_mime_magic.html