【问题标题】:Why Apache Tika detect mimetype of a jar file as application/zip instead of application/java-archive?为什么 Apache Tika 将 jar 文件的 mimetype 检测为 application/zip 而不是 application/java-archive?
【发布时间】:2020-09-19 14:57:49
【问题描述】:

我正在尝试检测 jar 文件代码的 mime-type 工作正常,但问题是 Apache Tika 返回 application/zip 而不是 application/java-archive 用于 java Jar 文件

我从 html 上传了 Jar 文件

for (FileItem item : fileItems)
        {  
            String mimeType;
            try { 
                mimeType = tika.detect(item.getInputStream());
                System.out.println(mimeType); // returns application/zip
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

所以我的问题是如何获取 jar 文件的 application/java-archive mime-type。

有什么方法可以配置 Apache Tika 或者我做错了什么

【问题讨论】:

  • 您也可以尝试传入文件名吗?例如detect with the File object instead?
  • @Gagravarr 会做什么?
  • 大概弄清楚jar的具体子类型吧!​​
  • 我没有文件,我只有输入流
  • Jar 是 zip 的子类型。如果没有文件扩展名,您所能做的就是说“这是基于 zip 的格式吗”

标签: java jar mime-types apache-tika


【解决方案1】:

感谢@Gagravarr,我能够解决这个问题

那么我的代码是什么样子的

public static TikaConfig getTikaConfig() {
        TikaConfig tikaConfig = null;
        try {
            return new TikaConfig();
        } catch (TikaException | IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return tikaConfig;
    }
public static final TikaConfig tikaConfig = getTikaConfig();
MediaType mediaType = tikaConfig.getDetector()
                                        .detect(TikaInputStream
                                                    .get(item.getInputStream()), new Metadata());
                MimeType mimeType = tikaConfig.getMimeRepository().forName(mediaType.toString());
                String extension =  mimeType.getExtension().split("\\.")[1];
System.out.println("File extention is :"+extension);

最重要的 gradde 配置

compile group: 'org.apache.tika', name: 'tika-core', version: '1.24.1'
runtime group: 'org.apache.tika', name: 'tika-parsers' version: '1.24.1'

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 1970-01-01
    • 2014-01-15
    • 2021-09-28
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多