【问题标题】:Java library or text file that maps mime types to nice human friendly file types将 mime 类型映射到对人类友好的文件类型的 Java 库或文本文件
【发布时间】:2011-04-09 00:09:44
【问题描述】:

目标 我的目标是找到一个文本文件或库,使我能够在给定 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/unknown abc”之类的未知文本 mime 类型将返回“未知的文本文件/格式”。

【问题讨论】:

  • 重新标记,更多标签可能会帮助您获得更多答案.. ;)

标签: java text types mime-types


【解决方案1】:

Apache Tika 支持MimeTypes。如果您不知道 mime 类型,它还支持Content Detection。无论如何,看起来你需要这样做:

String t = "text/plain";
org.apache.tika.mime.MimeTypes.getMimeType(t).getDescription();

免责声明:我实际上并没有尝试过。另外,我不知道它是否支持你需要的所有 mime 类型。

【讨论】:

  • 感谢您发现这一点。在 tika-core.jar 中有一个 xml 文件 tika-mimetypes.xml,其中定义了许多 mime 类型和描述。看起来它应该可以工作......再次感谢!
  • xml 中的大多数条目都被忽略了,因为出于某种奇怪的原因,tika 正在从名为“_comment”的标签中设置描述,而不是“描述”等。要提交问题/补丁..跨度>
  • 这似乎已从版本 0.8 (issues.apache.org/jira/browse/TIKA-515) 修复
【解决方案2】:

【讨论】:

  • dottoro 和 pdx-edu 的链接相当好,但并不全面。你有没有更完整的链接?我对只给出 mime type = 文件扩展名的列表不感兴趣...
【解决方案3】:

使用这个库

这适用于文件、字节、...

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();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-11
    • 2019-09-27
    • 1970-01-01
    • 2018-06-27
    • 2019-01-28
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多