ファイル名拡張子からMIMEタイプを取得する 質問する

ファイル名拡張子からMIMEタイプを取得する 質問する

ファイル拡張子から MIME タイプを取得するにはどうすればよいですか?

ベストアンサー1

ASP.NETまたはその他の

ASP.NET Coreではオプションが少し変更されました。以下がその変更内容です(クレジット):

  • new FileExtensionContentTypeProvider().TryGetContentType(fileName, out contentType);(vNextのみ)
    • テストはしていませんが、公開されているMIMEタイプリストを公式に拡張できるようです。Mappings財産。
  • 使用MimeTypesNuGet パッケージ
  • MimeMappingsファイルをコピーします参照元.NET Framework の

.NET Framework >= 4.5 の場合:

使用System.Web.MimeMapping.GetMimeMappingメソッドは、.NET Framework 4.5 の BCL の一部です。

string mimeType = MimeMapping.GetMimeMapping(fileName);

カスタム マッピングを追加する必要がある場合は、おそらくリフレクションを使用して BCLMimeMappingクラスにマッピングを追加できます。このメソッドを公開するカスタム ディクショナリが使用されるため、マッピングを追加するには以下を呼び出す必要があります (テストは行っていませんが、おそらく動作するはずです)。

いずれにせよ、リフレクションを使用して MIME タイプを追加する場合は、プライベート フィールドにアクセスしているため、その名前が変更されたり、完全に削除されたりする可能性があることに注意してください。そのため、細心の注意を払い、二重チェックを追加し、すべてのステップでフェイルセーフ アクションを提供する必要があります。

MimeMapping._mappingDictionary.AddMapping(string fileExtension, string mimeType)

おすすめ記事