J'essaie de connaître le type de contenu d'un fichier en utilisant apache tika.Apache Tika detect renvoie un résultat incohérent
signifie alors que j'ai trouvé ce comportement incohérent.
final Tika tika = new Tika();
String fileType = tika.detect(uploadedInputStream);
System.out.println(fileType);
String newFileType = tika.detect(uploadedInputStream);
System.out.println(newFileType);
le code ci-dessus me donne eteint comme
application/pdf
application/octet-stream
J'attends la sortie comme application/pdf
dans les deux cas.
Quelqu'un peut-il expliquer pourquoi cela se passe comme ça? comment puis-je obtenir le résultat escompté?
Apache Tika a quelques exigences sur ce genre de InputStream il peut détecter sans changer l'état de celui-ci. Que se passe-t-il si vous essayez d'envelopper le vôtre dans un TikaInputStream? – Gagravarr
Merci beaucoup, celui-ci m'a aidé. Pourriez-vous s'il vous plait me dire plus, pourquoi ça se passait avec InputStream normal et comment TikaInputStream l'a résolu – manoj
Quand Tika a fini de détecter, il doit rembobiner le flux pour l'utilisateur suivant (par exemple une seconde détection). Si votre flux prétend prendre en charge le rembobinage mais pas réellement, alors ces octets sont partis et vous êtes bourré .... – Gagravarr