无法确定文件的 MIME 类型

Posted

技术标签:

【中文标题】无法确定文件的 MIME 类型【英文标题】:unable to determine the MIME type of a file 【发布时间】:2016-05-23 00:34:17 【问题描述】:

我是 Java 新手,正在尝试学习如何确定文件的 MIME 类型。我正在使用 Mac 操作系统。下面是我想出的代码。但是,当我运行代码时,IDE 输出错误:

'/Users/justin/Desktop/Codes Netbean/JavaRandom/xanadu.txt' has an unknown filetype.

为什么会这样?该文件确实存在。我做错了吗?

public class DeterminingMIMEType 

    public static void main(String[] args) 

        Path filename = Paths.get("/Users/justin/Desktop/Codes Netbean/JavaRandom/xanadu.txt");

        try 
            String type = Files.probeContentType(filename);
            if (type == null) 
                System.err.format("'%s' has an" + " unknown filetype.%n", filename);
             else if (!type.equals("text/plain")) 
                System.err.format("'%s' is not" + " a plain text file.%n", filename);
            
         catch (IOException x) 
            System.err.println(x);
        
    

【问题讨论】:

【参考方案1】:

Files 的文档显示 FileTypeDetector 是由 ServiceLoader 加载的。一点点谷歌搜索会导致: http://blog.byjean.eu/java/2013/08/22/making-jdk7-nio-filetypedetection-work-on-mac-osx.html 这表示这是 Oracle Java7 jvm 为 Mac OS 提供的默认 FileTypeDetector 的问题。 该链接还提供了一种提供您自己的 FileTypeDetector 的方法,不过升级到 Java 8(也许?)也可以解决问题。

【讨论】:

以上是关于无法确定文件的 MIME 类型的主要内容,如果未能解决你的问题,请参考以下文章

无法获取 .flv 文件的正确 mime 类型

在 DRUPAL 中验证 PDF 文件上传中的 MIME 类型

Zip Mime 类型似乎无法识别

由于 MIME 类型不匹配,无法加载 JavaScript 文件

APK IPA --------------- iis7如何添加mime类型支持所有后缀名文件下载的方法(解决特殊后缀文件无法下载的问题)

由于不允许的 MIME 类型,无法加载模块脚本