Wie zu verwenden HttpServletRequest#getParts() in einen servlet-filter, läuft auf Tomcat?
Ich würde gerne eine Datei hochladen in meine JSF-Anwendung. Ich bin mit einem Filter
und HttpServletRequestWrapper
Zugriff auf die upload-Datei.
public MultipartRequestWrapper(HttpServletRequest request) {
super(request);
System.out.println("Created multipart wrapper....");
try {
System.out.println("Looping parts"+getParts().size());
for (Part p : getParts()) {
System.out.println(String.format("Part name: %1$s, contentType : %2$s", p.getName(), p.getContentType()));
for(String header : p.getHeaderNames()){
System.out.println("Header name : " + header + ", value : " + p.getHeader(header));
}
byte[] b = new byte[(int) p.getSize()];
p.getInputStream().read(b);
params.put(p.getName(), new String[]{new String(b)});
}
} catch (IOException ex) {
ex.printStackTrace();
Logger.getLogger(MultipartRequestWrapper.class.getName()).log(Level.SEVERE, null, ex);
} catch (ServletException ex) {
ex.printStackTrace();
Logger.getLogger(MultipartRequestWrapper.class.getName()).log(Level.SEVERE, null, ex);
}
Jedoch getParts()
gibt eine leere Auflistung. Wie kann ich Sie aktivieren multipart/form-data
Analyse in einen servlet-filter, der in Tomcat 7.0.8?
InformationsquelleAutor Niroshan Abayakoon | 2011-11-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um
HttpServletRequest#getParts()
arbeiten in einem- Filter
in Tomcat müssen Sie dieallowCasualMultipartParsing="true"
in die webapp ist<Kontext>
element inWebapp/META-INF/context.xml
oderTomcat/conf/server.xml
.Weil gemäß der servlet-3.0-Spezifikation, die
HttpServletRequest#getParts()
sollte nur innerhalb einerHttpServlet
mit der@MultipartConfig
annotation. Siehe auch die Dokumentation der<Kontext>
element:Siehe auch:
Unabhängigen zu dem konkreten problem, der folgende Code ist definitiv nicht richtig:
Erste, Sie nicht respektieren die Zeichenkodierung, die vom client angegeben ist -wenn überhaupt. Zweitens, diese Fehler für binäre Dateien.
Diese Frage/Antwort ist nicht etwa Apache Commons FileUpload. Es geht um den neuen Servlet 3.0 builtin
multipart/form-data
parser. Dieses Tomcat-Konfiguration die Einstellung hat nichts zu tun mit Apache Commons FileUpload. Dein konkretes problem wird dadurch verursacht, an anderer Stelle. Drücken Sie einfachAsk Question
wenn Sie noch stucks. In der Zwischenzeit, diese Antwort kann hilfreich sein: stackoverflow.com/questions/2422468/...danke für deine schnelle Antwort aber ich bin wenig verwirren, über mein Problem, weil multipart Anfrage automatisch gelöscht, tomcat. nicht einmal servelt init aufgerufen. Irgendwelche Vorschläge, bitte?
Gibt es eine ähnliche Lösung zu aktivieren-upload per filter unter Wildfly?
InformationsquelleAutor BalusC
Versuchen Sie auch Multipart-filter. arbeitete für mich.
InformationsquelleAutor navaltiger