首页 > 解决方案 > 如何从 .NET Core 中的 ContentType(MIME 类型)获取文件扩展名?

问题描述

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

标签: c#asp.net.net.net-coremime

解决方案


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 ://docs.microsoft.com/en-us/windows/desktop/shell/fa-file-types


推荐阅读