如何从文件扩展名中获得MIME类型?
当前回答
使用MimeTypeMap包,它提供了文件扩展名到mime类型以及mime类型到文件扩展名的巨大双向映射
使用mimetype;
获取扩展的mime类型
Console.WriteLine("txt -> " + MimeTypeMap.GetMimeType("txt")); // "text/plain"
获取mime类型的扩展名
Console.WriteLine("audio/wav -> " + MimeTypeMap.GetExtension("audio/wav")); // ".wav"
GitHub网址:https://github.com/samuelneff/MimeTypeMap
其他回答
由文件扩展名计算的mime类型不一定总是正确的。
让我们说,我可以保存一个文件的。png扩展名,但文件格式,我可以设置为“ImageFormat.jpeg”。
所以在这种情况下,你要计算的文件会给出不同的结果…这可能会导致文件比原始文件大。
如果你正在处理图像,那么你可以使用imagecodecInfo和ImageFormat。
受到塞缪尔回答的启发,我写了一个改进版本:
当扩展名是大写时也适用。 以文件名为输入,优雅地处理没有扩展名的文件。 不要在键中包含“。”。 列表,为此我编写了一个小型转换脚本。
最终的源代码超过30K个字符,所以我不能张贴在这里,在Github上检查它。
为了让Shimmy的回答更清楚:
var mimeType = MimeMapping.GetMimeMapping(fileName);
System.Web.dll v4.5开发
// Summary:
// Returns the MIME mapping for the specified file name.
//
// Parameters:
// fileName:
// The file name that is used to determine the MIME type.
public static string GetMimeMapping(string fileName);
大多数解决方案都在工作,但为什么要这么努力,而我们也可以很容易地获得mime类型。 在系统。Web程序集,有从文件名获取mime类型的方法。 例如:
string mimeType = MimeMapping.GetMimeMapping(filename);
你可以使用mimemaps类。我认为这是最简单的方法。我也给出了mimemapping的导入。因为我觉得找这些类的导入很麻烦。
import org.springframework.boot.web.server.MimeMappings;
MimeMappings mm=new MimeMappings();
String mimetype = mm.get(fileExtension);
System.out.println(mimetype);
推荐文章
- 实体框架核心:在上一个操作完成之前,在此上下文中开始的第二个操作
- 如何为构造函数定制Visual Studio的私有字段生成快捷方式?
- 如何使用JSON确保字符串是有效的JSON。网
- AppSettings从.config文件中获取值
- 通过HttpClient向REST API发布一个空体
- 如何检查IEnumerable是否为空或空?
- 自动化invokerrequired代码模式
- 在c#代码中设置WPF文本框的背景颜色
- 在c#中,什么是单子?
- c#和Java中的泛型有什么不同?和模板在c++ ?
- c#线程安全快速(est)计数器
- 如何将此foreach代码转换为Parallel.ForEach?
- 如何分裂()一个分隔字符串到一个列表<字符串>
- 如何转换列表<字符串>列表<int>?
- c#对象列表,我如何得到一个属性的和