Java SE 8 est livré avec le Servlet Spec 3.0, donc j'ai pensé qu'il serait très facile de traiter une requête POST en plusieurs parties, mais j'avais tort.Comment récupérer une requête POST en plusieurs parties dans Java SE 8?
Je reçois toujours zéro partie, bien que je vois dans le débogueur de réseau Chrome que la charge utile contient deux images!
Qu'est-ce que je fais mal?
Voici mon code Java traitement de la requête POST:
if (request.isMultipartRequest()) {
Collection<Part> parts = request.getParts();
log.info("number of parts: "+parts.size());
for (Part part : parts) {
String fileName = getFileName(part);
log.info("fileName = "+fileName);
}
}
...
private String getFileName(Part part) {
String contentDisp = part.getHeader("content-disposition");
System.out.println("content-disposition header= "+contentDisp);
String[] tokens = contentDisp.split(";");
for (String token : tokens) {
if (token.trim().startsWith("filename")) {
return token.substring(token.indexOf("=") + 2, token.length()-1);
}
}
return "";
}
Il enregistre toujours 0 parties.
J'utilise Tomcat 7 et Java SE 8.
Je pense aussi qu'il est très bizarre d'avoir cette méthode getFileName()
dans mon code, je m'y attendais Java 8 à faire pour moi ...
Tous les conseils sur comment faire ce travail sont très appréciés!
Vous mélangez vraiment des termes - Java 8 n'est pas directement lié à la spécification de Servlet - Java EE (JEE) l'est. De toute façon, vous semblez avoir trouvé [le tutoriel] (http://docs.oracle.com/javaee/6/tutorial/doc/glraq.html) - avez-vous suivi tout cela? – stdunbar
@stdunbar oui vous avez raison, Servlet 3.0 est livré avec Tomcat 7 fonctionnant sous Java 8 (dans mon cas spécifique). Désolé. – basZero