Votre InputStream était ni un OLE2 flux, ni un OOXML flux
Je suis à l'aide d'Apache Commons pour télécharger un .fichier docx dans google app engine, comme expliqué dans ce lien
Téléchargement du fichier servlet. Pendant le téléchargement, je tiens également à extraire du texte à l'aide de Apache POI bibliothèques.
Si je passe cette de la PI de l'API:
InputStream stream = item.openStream();
- Je obtenir le ci-dessous exception:
java.lang.IllegalArgumentException: Your InputStream was neither an OLE2 stream, nor an OOXML stream
public static String docx2text(InputStream is) throws Exception {
return ExtractorFactory.createExtractor(is).getText();
}
Je suis le téléchargement d'un valide .document docx. Le POI de l'API fonctionne très bien si je passe un objet FileInputStream.
FileInputStream fs=new FileInputStream(new File("C:\\docs\\mydoc.docx"));
OriginalL'auteur user1493834 | 2014-04-23
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas PI la mise en œuvre interne, mais j'imagine qu'ils ont besoin d'un seekable flux. Le flux retourné par des servlets (et de mise en réseau en général) ne sont pas adressable.
Essayez de lire l'ensemble du contenu et ensuite en l'enveloppant dans
ByteArrayInputStream
:OriginalL'auteur Peter Knego
Le problème est résolu ..
OriginalL'auteur user1493834