为什么Apache Tika检测一个jar文件的mime-类型为applicationzip而不是applicationjava-archive?

问题描述 投票:1回答:1

我正在尝试检测一个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文件获取applicationjava-archive的mime-type。

有什么方法可以配置Apache Tika,还是我做错了什么?

java jar mime-types apache-tika
1个回答
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);

最重要的gralde配置

compile group: 'org.apache.tika', name: 'tika-core', version: '1.24.1'
runtime group: 'org.apache.tika', name: 'tika-parsers' version: '1.24.1'
© www.soinside.com 2019 - 2024. All rights reserved.