Tika AutoDetectParser正在使用zip文件的BufferedInputStream

时间:2018-07-12 18:29:57

标签: apache zip inputstream apache-tika bufferedinputstream

我正在使用Apache Tika确定文件的MIME类型。 AutoDetectParser似乎正在消耗(导致一个0字节的文件)作为参数传递给AutoDetectParser.detect()的BufferedInputStream。但是,它仅对zip文件执行此操作。我测试过的所有其他文件类型均不受影响。

public static String determineMimeType(InputStream stream, String filename) throws ParseXmlStreamException {

        AutoDetectParser parser = new AutoDetectParser();
        Detector detector = parser.getDetector();
        Metadata metadata = new Metadata();

        TikaInputStream tikaInputStream = TikaInputStream.get(stream);
        metadata.add(Metadata.RESOURCE_NAME_KEY, filename);
        try {
            MediaType mediaType = detector.detect(tikaInputStream,  metadata);
            return mediaType.toString();
        } catch (IOException e) {
            LOG.error("Trouble detecting MIME type", e);
            throw new ParseXmlStreamException("Trouble detecting MIME type", e);
        }
    }

AutoDetectParser仍然可以正确检测zip文件的MIME类型,但是我需要它不要导致0字节文件。我需要修复,不知道尝试什么或在哪里看。

0 个答案:

没有答案