在Java中确定文件的MIME类型的最佳方法是什么?

21

想知道在Java中获取文件的MIME类型的最佳方法是什么。它应该实际检查文件,因为文件名并不是准确的指示器。

目前我正在使用以下方法,但这似乎很难确定:

  is = new BufferedInputStream(new FileInputStream(fileName));
  String mimeType = URLConnection.guessContentTypeFromStream(is);
  if(mimeType == null) {
    throw new IOException("can't get mime type of image");
  }

仍然相信你的方法在大多数情况下都很好。 - Truong Ha
我使用了在这里发布的答案中提到的类:https://dev59.com/HW855IYBdhLWcg3wbjvO#10140531 - Joshua Pinter
3个回答

26

@BalusC关于这个SO问题check file of MIME-type with JMimeMagic,你有什么看法? - catch23
@BalusC 我尝试使用它,但对于docx文件,它返回的MIME类型是application/zip,这是不正确的。 - Mahmoud Saleh

6

0
    public static String getContentType(String filename)
    {
        String g = URLConnection.guessContentTypeFromName(filename);
        if( g == null)
        {
            g = MimetypesFileTypeMap.getDefaultFileTypeMap().getContentType(filename);
        }
        return g;
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接