【问题标题】:How to detect if file is mp3 using Apache tika TypeDetector?如何使用 Apache tika TypeDetector 检测文件是否为 mp3?
【发布时间】:2017-04-19 17:14:41
【问题描述】:

如何使用 apache tika 检测文件是否为 mp3? 我不只是在寻找基于文件扩展名的检测。

我正在使用:

typeTika = new Tika(new TypeDetector()); 

但是当我尝试检测类型时,答案总是:

     application/octet stream

(无论我发送什么:mp3、图像等,它始终是应用程序/八位字节流)

如何判断文件是否为 mp3?

这个问题不是重复的。 Here 有人使用带有文件扩展名检测的 Tika。 这对我来说还不够。 我需要根据文件类型而不是文件名知道文件是否为 mp3。我在文档中找不到如何执行此操作的任何信息。

TypeDetector 总是返回所有文件类型的应用程序/八位字节流,所以我想知道如何使用它来获取文件是否为 mp3 的信息。

【问题讨论】:

    标签: java apache-tika


    【解决方案1】:

    取自Apache Tika examples

    File file = new File("/path/to/file.mp3");
    
    Tika tika = new Tika();
    String type = tika.detect(file);
    System.out.println(file + " : " + type);
    

    这将同时检测文件内容和文件名。对于 MP3 文件,您将返回 audio/mpeg

    【讨论】:

      【解决方案2】:

      Apache Tika可以检测到每个文件的MIME Type。如今,使用 Multipurpose Internet Mail Extensions 文件类型指示符 (MIME) 非常普遍,并且每种文件格式都有自己的 MIME。下面提到了其中的一些:(更多请访问iana.orgfileformats.archiveteam.org

      • .mp3 --> audio/mpeg
      • .mp4 --> video/mp4
      • .flac --> audio/x-flacaudio/flac
      • .png --> image/png
      • .jpg --> image/jpeg
      • .pdf --> application/pdf
      • .jar --> application/java-archive

      要在您的项目中使用 Tika,请将以下 maven 依赖项添加到您的 pom 文件中:

      <!-- Apache Tika: detects and extracts metadata and text from a variety of files -->
      <dependency>
          <groupId>org.apache.tika</groupId>
          <artifactId>tika-core</artifactId>
          <version>2.0.0</version>
      </dependency>
      

      然后使用上述代码检测文件的 MIME 类型。

      File file = new File("/path/to/music.mp3");
      Tika tika = new Tika();
      String mimeType = tika.detect(file);
      System.out.println(mimeType); // Prints the MIME type of the file
      

      【讨论】:

        猜你喜欢
        • 2012-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多