Wie, akzeptiert bei mehrteiligen und application/x-www-form-urlencoded?
Baute ich ein servlet, das es erlaubt das hochladen einer Datei oder alternativ hochladen einer Liste als Eingabe. So weit ich ' ve behandelt es, indem Sie das servlet zu akzeptieren multipart/form-data so, auch wenn es keine Datei, ich lese die Liste als ein Teil.
Ich bin jetzt versucht, rufen Sie das servlet zum hochladen einer Liste durch einen JQuery-AJAX-Methode statt, die über ein Formular. Wenn ich versuche zum hochladen einer Liste wird normalerweise durch die Methode, die ich bekomme:
org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
Wenn ich den contentType als multipart/form-data so:
$.ajax({
url: someUrl,
type: 'POST',
contentType: 'multipart/form-data',
data: {list: inputList}
});
Bekomme ich diese Fehlermeldung statt:
org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
Meine Frage ist, ob es eine Möglichkeit gibt, zu konfigurieren, das servlet zu akzeptieren, sowohl für content-Typen oder alternativ ist es ein Mittel zum schreiben der ajax-Daten hochladen " multipart/form-data?
Ich weiß, es ist einfach hochgeladen multipart/form-data mit dem FormData-API, aber ich brauche die Unterstützung IE9 so ist dies keine option.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich schlage vor, Sie verwenden Apache Commons FileUpload Bibliothek. Es bietet Ihnen eine einheitliche Oberfläche, egal welche Art von form übermittelt wurde, und macht es einfach, mit zu arbeiten hochgeladenen Dateien. Siehe Abschnitt Verarbeitung der hochgeladenen Elemente der Bedienungsanleitung, es sollte Ihnen eine Allgemeine Vorstellung davon, wie es funktioniert.