目标我的目标是找到一个文本文件或库,让我可以在输入mime类型输入时进行映射,并返回一种友好的人类友好格式。
例如,考虑到Word的mime类型(如下所示),我希望得到的结果类似于“ Microsoft Office Word文档”。
application/vnd.openxmlformats-officedocument.wordprocessingml.document
我意识到我可以编译自己的列表并使用诸如Map(Java)之类的东西,但那样就不全面了,等等。
简单选项我知道我可以检查并返回sub mime类型并保留最后一个组件,但是根据上面的Word mime类型,这不是很复杂,结果将是非常通用的“文档”。我可以扩展并使用更多组件,但结果仍然很难看。
键/值文件我尝试找到的另一种选择是带有键/值对的文本文件,其中键是完整的mime类型,值是对人类友好的友好文本。
text/plain=Plain Text File
application/octet-stream=Unknown binary file
这似乎是一个不错的选择,但我无法找到包含大量条目的确定性文本文件。如果仅提供媒体源(我更喜欢将其称为主要的mime类型),那么存在“ text / plain”中的“ text”,这样一个未知的text mime类型(例如“ text / unknown abc”)就可以了。返回“未知文本文件/格式”。
Apache Tika支持MimeTypes。如果您不知道mime类型,它也支持Content Detection。无论如何,看来您需要这样做:
String t = "text/plain";
org.apache.tika.mime.MimeTypes.getMimeType(t).getDescription();
免责声明:我实际上没有尝试过。另外,我不知道它是否支持您需要的所有mime类型。
使用此库
这通过文件,字节,...起作用
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();
}