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

Apache TIKA检测到错误的内容类型

巫马玉堂
2023-03-14

我使用spring JAX-RS将文件作为多部分表单数据上传。我有inputstream对象作为参数。当我将这个输入流复制到磁盘时,我得到了我的文本文件。

但是当我试图检测这个输入流的内容类型时,我得到的内容类型是application/octet-stream。

    Tika tika = new Tika();
    String contentType = tika.detect(in);

作为一个测试,我还用tika desktop测试了相同的文件,并获得了正确的内容类型text/plain

共有1个答案

顾俊哲
2023-03-14

将文本文件检测为文本文件实际上很难...没有神奇的字节。Tika依赖于文件名(文件后缀)。如果在文件上运行detect,或者传入文件名detect(InputStream is,String filename),或者传入元数据对象中的文件名(Metadata.set(Metadata.resource_name_key,filename)),将得到正确的结果。

 类似资料:
  • 我尝试了几个“accept”参数,总是得到“text/html”。 对这个问题有什么看法吗?谢了!

  • 问题内容: 我正在使用Selenium 2 Java API与网页进行交互。我的问题是:如何检测链接目标的内容类型? 基本上,这是背景:单击链接之前,我想确保响应是HTML文件。如果没有,我需要以其他方式处理它。因此,假设有一个PDF文件的下载链接。应用程序应直接读取该URL的内容,而不是在浏览器中打开它。 我们的目标是拥有一个能够自动知道当前位置是HTML,PDF,XML或其他类型的应用程序,以

  • 问题内容: 我尝试序列化从实体数据模型.edmx自动生成的POCO类,使用时 我收到以下错误: 错误检测到类型为System.data.entity的自引用循环。 我该如何解决这个问题? 问题答案: 那是最好的解决方案 https://code.msdn.microsoft.com/Loop-Reference-handling-in- caaffaf7 (我选择/尝试了这个,还有很多其他选择)

  • 我一直试图仅使用文件内容检测MIME类型,使用Apache Tika Core和Apache Tika Parser1.23 jars。下面是用于相同内容的代码: Tika无法检测扩展名为。tmp(text/plain file)和iso-8859-1字符集的文件的内容类型,内容如下: èé 通过以下方式正确检测具有相同配置和以下内容的文件: 000000000000000000000000000

  • 问题内容: 我正在使用Selenium 2 Java API与网页进行交互。我的问题是:如何检测链接目标的内容类型? 基本上,这是背景:单击链接之前,我想确保响应是HTML文件。如果没有,我需要以其他方式处理它。因此,假设有一个PDF文件的下载链接。应用程序应直接读取该URL的内容,而不是在浏览器中打开它。 目标是拥有一个能够自动知道当前位置为HTML,PDF,XML或任何其他类型的应用程序,以使