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

3

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

1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接