アップロードされたファイルに拡張子がない場合、MIMEタイプを指定する必要がありますか?つまり、デフォルトの一般的なMIMEタイプはありますか?
アップロードされたファイルに拡張子がない場合、MIMEタイプを指定する必要がありますか?つまり、デフォルトの一般的なMIMEタイプはありますか?
回答:
application/octet-stream
不明なタイプに使用できます。
RFC 2046はセクション4.5.1で述べています:
「オクテットストリーム」サブタイプは、ボディに任意のバイナリデータが含まれていることを示すために使用されます。
application/octet-stream
ファイルが実行可能であると想定する必要はありません。また、ブラウザーが実行可能ファイルを故意にダウンロードしている場合でも、ユーザーの要求なしにブラウザーが「実行」することはありません。実行可能ファイルをダウンロードするだけでは、今すぐ実行したいという意味ではありません。application/octet-stream
ダウンロード時にファイルを自動的に実行するブラウザが実際にある場合は、その動作を再現する方法と方法を教えてください。今、私はあなたを信じていません。
質問は明らかにHTTP Content-Typeに関するものだったので、RFC-2046(Media Types)の代わりにRFC-7231(HTTP / 1.1 Semantics and Content)を参照として使用する必要があります。
また、RFC-2046は不明なタイプを明確に定義していませんが、RFC-7231は定義しています。
不明なデータのMIMEタイプを送信しません。
より明確にするために:Content-Typeヘッダーはまったく使用しないでください。
RFC-7231
ハイパーテキスト転送プロトコル(HTTP / 1.1):セマンティクスとコンテンツ
3.1.1.5。コンテンツタイプペイロード本体を含むメッセージを生成する送信者 は、囲まれた表現の意図されたメディアタイプが 送信者に知られてい
ない限り、そのメッセージにContent-Typeヘッダーフィールドを生成する必要があります(SHOULD)。
そのセクションは、あなたがそれを確実に知らない場合、それを省略するようにあなたに明確に指示します。また、タイプがアプリケーション/オクテットストリームであると受信者が想定することもできますが、それは他の何かである可能性があることも示しています。
RFC-2046
4.5.1。オクテットストリームサブタイプ
「アプリケーション/オクテットストリーム」エンティティを受け取る実装の推奨アクションは、データ
をファイルに入れて、Content-Transfer-Encodingを元に戻したり
、ユーザー指定の入力として使用したりすることです。処理する。
そして、すでに上で述べたように:
RFC-7231
3.1.1.5。コンテンツタイプContent-Typeヘッダーフィールドが存在しない場合、受信者は「アプリケーション/オクテットストリーム」
([RFC2046]、セクション4.5.1)のメディアタイプを想定するか、データを調べてそのタイプを決定できます。
「application / octet-stream」と定義すると、「application / octet-stream」であることがわかります。
あなたがそれを定義しない場合、それはあなたがそれが何であるかを知らず、決定をレシーバーに任せていることを伝えています。
私は好みますapplication/unknown
が、結果は確かに同じになりますapplication/octet-stream
application/octet-stream
かapplication/unknown
?彼らが発明した理由がありimage/png
ます。