Я использую зависимость пакета Apache Tika для проекта, чтобы найти миметипы файлов. Из -за некоторых проблем, которые мы обнаружили с помощью inputstream , на самом деле гарантированно отметит/сбросит заданный inputstream . Tika-Bundle включает в себя API-интерфейсы Core и Sanger и использует poifscontainerDetector , ZipContainerDetector , Oggdetector , MimeTypes и Magic для обнаружения. Я отлаживаю в течение 3 часов, и все детекторы отмечают и сброшены после обнаружения. Я сделал это следующим образом.TikaInputStream tis = null;
try {
TikaConfig config = new TikaConfig();
tikaDetector = config.getDetector();
tis = TikaInputStream.get(in);
MediaType mediaType = tikaDetector.detect(tis, new Metadata());
if (mediaType != null) {
String[] types = mediaType.toString().split(",");
for (int i = 0; i < types.length; i++) {
mimeTypes.add(new MimeType(types));
}
}
} catch (Exception e) {
logger.error("Mime Type for given Stream could not be resolved: ", e);
}
< /code>
Но inputstream потребляется. Кто -нибудь знает, как найти миметипы, не потребляя inputstream?
Подробнее здесь: https://stackoverflow.com/questions/268 ... ven-stream