4

まず、ヘッダーで Content-Disposition を指定し、「添付ファイル」または「インライン」のいずれかを使用できることを認識しており、この質問はそれに関するものではありません(少なくとも直接ではありません)。

拡張子が .txt のファイルがあります。その .txt ファイルの内容に応じて、ブラウザーの動作が異なることに気付きました。ファイルに英数字が含まれていて、ファイルの場所を (たとえば) Chrome の URL バーに貼り付けると、ファイルがブラウザーで開きます。

ファイルに「SI」文字が含まれている場合、ファイルはブラウザーで開かれる代わりにダウンロードされます。

最初は「SI」が制御コードだからかなと思ったのですが、「CR」や「LF」も制御コードで、ファイルがあるとブラウザに表示されます。.txt ファイルに「DC2」文字が存在する場合でも、ファイルは Chrome で開きます。

私の質問は、ファイル コンテンツ レベルで、ファイルが表示またはダウンロードされるかどうかを決定するものは何ですか?

(これはブラウザによって異なる場合があることは承知していますが、少なくともある程度信頼できるものがあれば、知っておくと役立ちます)

前もって感謝します。

編集(サムからの回答に基づく):

「SI」または「DC2」の文字がテキスト ファイルの最初の 1000 文字程度にある場合はダウンロードされ、それらの文字が最初の 1000 文字程度より後にある場合、ファイルはブラウザに表示されます。

4

2 に答える 2

2

ファイルを送信したときのブラウザの動作は、サーバーから送信された content-type ヘッダーに基づいています。自分で明示的に設定していない場合、Web サーバーはファイルの最初の数バイトに基づいて最適な推測を試みることがあります。

http://httpd.apache.org/docs/2.2/mod/mod_mime_magic.htmlを参照してください。

于 2013-10-08T20:49:50.357 に答える