2017-02-28 1 views
0

J'utilise Appache Tika en mode serveur. J'ai besoin de développer un client de repos java pour analyser des fichiers. Pour le téléchargement de fichiers pdf J'utilise le code:Apache Tika: analyse de fichiers docx via Rest en java

fileBody = new FileBody(file, "application/pdf"); 
multiPartEntity.addPart("uploaded_file", fileBody); 
pdfPutRequest.setEntity(multiPartEntity); 
response = client.execute(pdfPutRequest); 

L'utilisation apache.http bibliothèque. Maintenant, j'essaie de développer une partie docx, mais je ne sais pas quel mimeType je dois fournir (application/docx donne moi l'erreur). Sans mimeTipe, je reçois l'exception "Type de support non pris en charge" dans le serveur Tika. Alors quel type dois-je fournir et dois-je faire d'autres changements.

Résolu!

Répondre

0

Le type MIME officiel .docx fichiers est

application/vnd.openxmlformats-officedocument.wordprocessingml.document 

Si vous utilisez l'outil CLI Tika en --detect mode, il peut vous dire que

Alternativement, le Tika serveur dispose d'un mode de détection disponible as documented in the Tika Server wiki.

Enfin, Tika détecte automatiquement le type MIME pour vous si aucune est donnée, voir the text extraction part of the Tika Server docs pour plus d'informations à donner ou ne pas donner une indication de type MIME avec votre fichier

+0

Merci pour la réponse. Je vois déjà l'option de détection et l'ai essayée. J'ai trouvé le problème à l'autre endroit ... quand j'ai envoyé le fichier, j'ai utilisé plusieurs parties, mais fait cela via la demande PUT ... maintenant je vois que dans la documentation, il est censé envoyer via POST ... – user3558218

0

J'ai trouvé la solution:

HttpPost docxPutRequest new HttpPost(url); 
docxPutRequest.setHeader("Accept", "text/plain"); 
MultipartEntity multiPartEntity = new MultipartEntity(); 
FileBody fileBody = new FileBody(file); 
multiPartEntity.addPart("uploaded_file", fileBody); 
docxPutRequest.setEntity(multiPartEntity); 
response = client.execute(docxPutRequest); 

Peut être cela aidera quelqu'un