首先我要说的是,我知道你可以在标题中指定Content-Disposition并使用“attachment”或“inline”,这个问题 NOT 关于此(至少不直接)。
我有一个扩展名为.txt的文件。我注意到依赖于.txt文件内容的不同浏览器行为。如果我的文件包含字母数字字符,并且我将文件的位置粘贴到(例如)Chrome的网址栏中,则该文件会在浏览器中打开。
如果我的文件包含"SI"字符,则会下载该文件而不是在浏览器中打开。
起初我认为可能是因为“SI”是控制代码,但“CR”和“LF”也是控制代码,当文件存在时,文件显示在浏览器中。当.txt文件中存在“DC2”字符时,该文件甚至会在Chrome中打开。
我的问题是:在文件内容级别,决定文件是否显示或下载的内容是什么?
(我知道这可能因浏览器而异,但是如果有一些东西至少有些可靠,那么知道会有所帮助)
提前致谢。
编辑(根据Sam的回答):
当“SI”或“DC2”字符位于文本文件的前1000个字符中时,它将被下载,如果这些字符位于前1000个左右的字符之后,则文件将显示在浏览器中。 / p>
答案 0 :(得分:2)
当您向其发送文件时,浏览器的行为将基于您的服务器发送的内容类型标头。如果您没有自己明确设置,您的Web服务器可能会尝试根据文件的前几个字节做出最佳猜测。