GOAL 我的目标是找到一个文本文件或库,使我能够在给定mime类型输入时进行映射,并返回一个友好的人性化格式。
例如,给定Word的mime类型(如下所示),我希望得到类似“Microsoft Office Word Document”的结果。
application/vnd.openxmlformats-officedocument.wordprocessingml.document
我意识到我可以编译自己的列表并使用像Map(Java)这样的东西但是它不会是全面的等等。
简化选项 我知道我可以检查并返回子mime类型并保留最后一个组件,但这不是很复杂,因为上面的Word mime类型结果将是一个非常通用的“文档”。我可以扩展并采用更多组件,但结果仍然非常难看。
KEY / VALUE文件 我试图找到的另一个选项是带有键/值对的文本文件,其中键是完整的mime类型,值是友好的友好文本。
text/plain=Plain Text File
application/octet-stream=Unknown binary file
这似乎是一个不错的选择,但我找不到包含大量条目的权威文本文件。如果仅仅是媒体的源(我更喜欢称之为主要的mime类型),“text / plain”中的“text”也存在,那么一个未知的文本mime类型,例如“text / unknown abc”将会很好返回“未知的文本文件/格式”。
答案 0 :(得分:3)
Apache Tika支持MimeTypes。如果您不知道mime类型,它还支持Content Detection。无论如何,看起来你需要这样做:
String t = "text/plain";
org.apache.tika.mime.MimeTypes.getMimeType(t).getDescription();
免责声明:我实际上没有尝试过。另外,我不知道它是否支持你需要的所有mime类型。
答案 1 :(得分:1)
以下链接可能会为您节省一些时间:
以下是一些映射mime类型和文件扩展名的链接:
答案 2 :(得分:0)
使用此库
这可以通过文件,字节等...
MimeUtil> https://github.com/saces/MimeUtil
用法:
MagicMimeMimeDetector g = new MagicMimeMimeDetector();
Collection<MimeType> list = g.getMimeTypes(file);
if(list.size() > 0)
{
MimeType mime = list.iterator().next();
return mime.toString();
}