【问题标题】:Apache TIKA detects wrong content typeApache TIKA 检测到错误的内容类型
【发布时间】:2019-05-31 03:32:34
【问题描述】:

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

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

我的代码是

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

in 是我的InputStream 对象,我得到的内容类型为application/octet-stream

作为测试,我还用 tika 桌面测试了同一个文件,我得到了正确的内容类型text/plain

【问题讨论】:

    标签: spring jax-rs apache-tika


    【解决方案1】:

    将文本文件检测为文本文件实际上很难......没有魔法字节。如果提供的话,Tika 依赖于文件名(文件后缀)。如果您在文件上运行检测,或者如果您传入文件名检测(InputStream is, String filename),或者如果您在元数据对象(metadata.set(Metadata.RESOURCE_NAME_KEY,fileName))中传入文件名,您'会得到正确的结果。

    【讨论】:

    • 即使文件名也不知道格式。文件扩展名为 .xyz
    猜你喜欢
    • 2018-04-08
    • 1970-01-01
    • 2015-06-26
    • 2022-01-06
    • 1970-01-01
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多