如何从 .NET Core 中的 ContentType(MIME 类型)获取文件扩展名?

big*_*444 3 .net c# asp.net mime .net-core

我将文件保存到 CosmosDB,并保存 FormFile 的 ContentType,然后使用它来填充 FileType 属性(类似于“pdf”或“msword”)。问题是 .doc 和 .docx (例如)具有不同的 MIME 类型,我需要看到它们都转到“msword”属性,并且我正在寻找一种可靠的方法来执行此操作。我知道我必须以某种方式映射我自己的类,但我不知道从哪里开始。

mez*_*tou 7

ASP.NET Core 在文件扩展名和 mime 类型之间有映射。该列表并不详尽,但它是一个好的开始(370 个条目)。此外,您还需要反转字典中的键和值以满足您的需要。

源代码: https: //github.com/aspnet/AspNetCore/blob/fa239f20a52defa06029f6a316846d6e190e05bb/src/Middleware/StaticFiles/src/FileExtensionContentTypeProvider.cs

如果您使用的是 Windows,则可以使用注册表来查找一些映射。您可以探索HKEY_LOCAL_MACHINE\Software\Classes查找 mime 类型信息:https://learn.microsoft.com/en-us/windows/desktop/shell/fa-file-types