当前位置: 首页 > 知识库问答 >
问题:

Apache Tika-检测特定于JSON/PDF的mime类型

劳仲渊
2023-03-14

我正在使用Apache Tika从它的base64 rapresentation中检测文件Mime类型。不幸的是,我没有关于该文件的其他信息(例如扩展名)。

我能做些什么让Tika变得更具体吗?

Tika tika = new Tika();
tika.setMaxStringLength(-1);
String mimetype = tika.detect(Base64.decode(fileString));

谢了。

共有1个答案

司马昕
2023-03-14

tika#检测(字符串)

检测具有给定文件名的文档的媒体类型。

传递PDF或JSON文件的内容将不起作用,因为该方法需要文件名。Tika将返回到text/plain,因为它找不到任何匹配的文件名。

String pdfContent = "%PDF-1.4\n%\\E2\\E3\\CF\\D3"; // i.e. base64 decoded
Tika tika = new Tika();
System.out.println(tika.detect(pdfContent.getBytes())); // "application/pdf"
Sring json = "[1, 2, 3]"; // an array in JSON
try {
    final JsonParser parser = new ObjectMapper().getFactory().createParser(json);
    while (parser.nextToken() != null) {
    }
    System.out.println("Probably JSON!");
} catch (Exception e) {
    System.out.println("Definitely not JSON!");
}

下面是杰克逊的DZone教程。

 类似资料:
  • 我使用Apache Tika来提取所有类型文件的文本。现在我还想用它来检测文件的正确MIME类型。 例如,这适用于... null ...但不是为了: CSS-文件(而不是) JavaScript-文件(而不是) ... (这些mime类型的结果来自我的应用程序,也来自tika-app)。 我的应用程序需要像这样的精确MIME类型,而不是一般的。提卡可能这样吗?

  • 我试图检测传递给web服务到SOAP信封中的文件内容类型。可以通过两种方式指示该文件: 从其url, 从其包含(base64压缩数据)。 那么,如何在文件扩展名未知的情况下检测MIME类型呢?

  • 我之前通过调用成功地用Tika解析了所有类型的文件,而没有设置任何自定义配置或元数据。现在我需要根据MIME-Type过滤文件进行解析。 我可以用找到mime-type,但是在调用之后,tika使用EmptyParser,检测到的内容类型是“application/octet-stream”。这是默认值,意味着tika无法找到它是什么类型的文件。我试图在解析文件之前设置元数据中的内容类型,但这导致

  • 我正在使用Apache Tika来检测输入流的mime类型,我想知道是否有一种现成的方法来检测该文件是可执行文件,这里有一大堆可执行文件mime类型: http://www.file-extensions.org/filetype/extension/name/program-executable-files 我想知道最好的方法来覆盖他们。

  • MIME(多用途Internet邮件扩展)类型告诉浏览器如何处理某些类型的文件。 当文件发送到您网站访问者的浏览器时,它也会发送该文件的MIME类型。 MIME类型告诉浏览器文件类型以及如何将文件提供给用户。 例如,如果将.js文件发送到浏览器,则还会发送application/JavaScript MIME类型以告知浏览器.js文件是JavaScript文件,浏览器会相应地处理该文件。 大多数M

  • 我有如下注释的类: 从这个意义上说,我希望标识类并为它们创建对象,并将它们放在的一般中。 我如何使用反射和Java来做到这一点?