【问题标题】:Java - How to get the mime type of a file from its stream? [duplicate]Java - 如何从流中获取文件的 MIME 类型? [复制]
【发布时间】:2015-07-04 04:27:53
【问题描述】:

是否可以从作为流从其存储位置读取的文件中获取文件的内容类型/mime 类型。

我对文件和东西有点陌生,我整天都在搜索,但找不到我需要的东西。

请帮我解决这个问题。提前致谢

编辑:- 编辑:

谢谢你们的cmets。

我的 java 版本是 6,我不能相信文件名来获取它的 mime 类型。

【问题讨论】:

标签: java


【解决方案1】:

来自 Java 文档:http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#probeContentType(java.nio.file.Path)

使用

probeContentType()

【讨论】:

    【解决方案2】:

    使用这个:

    Files.probeContentType(path)
    

    顺便说一句,您的问题与this SO post 重复。请在问下一个问题之前彻底检查。

    【讨论】:

    • 感谢您的评论。但真正的瓶颈是,我有 java 版本 6,不能信任文件名。任何帮助将不胜感激..
    • 使用 Servoy 项目中的 MimeTypes 开源类。有关详细信息,请参阅this link。这将在 Java 6 上运行。
    【解决方案3】:

    也许这个链接会有所帮助:

    mime type of files

    【讨论】:

      【解决方案4】:

      文件的 MIME 类型不是文件本身的一部分。相反,它通常由访问文件的服务器配置和提供;例如,通过 HTTP 标头。一些二进制文件有所谓的“幻数”,在某种程度上,它可以用来识别文件的内容。 See here 获取常用目录。例如,您可以查看文件流的前几个字节并检查目录以确定类型。但是,不能保证这种方法是准确的。

      正如其他人所建议的,您可以使用Files#probeContentType(),但这需要一个文件名。如果您只能访问流,那么您就不走运了。此外,它也存在同样的准确性问题。

      【讨论】:

        猜你喜欢
        • 2014-09-28
        • 2014-08-06
        • 1970-01-01
        • 2012-10-01
        • 2014-01-30
        • 2015-09-13
        • 2010-09-30
        • 2016-05-19
        相关资源
        最近更新 更多