Ich verwende apache-commons-fileupload
, um die Datei von client
auf die server
zu laden (mit JSP
und Servlet
).
JSP / HTML
%Vor%Servlet: GetFile
%Vor% Ich kann die Datei auf den Server hochladen, aber ich bin nicht in der Lage, den Wert von text1
in servlet
zu erhalten (Ich bekomme null
Wert von text1
in servlet
) Ich benötige diese textfield
im Formular, um zusätzliche Informationen beim Hochladen in server
zu übermitteln.
enctype="multipart/form-data"
Option des Formulars erlaubt andere nicht
Formulierungsdaten, die zu übermitteln sind? Wenn es nicht erlaubt ist, was sind die anderen Optionen, die ich diese zusätzliche textfield
an die server
. Ist
enctype="multipart/form-data"
Option des Formulars erlaubt andere nicht Formulierungsdaten, die zu übermitteln sind? Wenn es nicht erlaubt ist, was sind die? andere Optionen Ich muss dieses zusätzliche Textfeld an den Server senden.
Nein, es gibt kein Problem mit enctype="multipart/form-data"
. Sie können andere Felder erhalten und dann in dieser Form ablegen.
Oder gibt es ein anderes Problem in meinem Code?
Ja, für jetzt. Bei Verwendung von enctype="multipart/form-data"
können Sie Parameter nicht direkt mit request.getParameter(name);
abrufen. Während der Verwendung sind Formularfelder nicht als Parameter der Anfrage verfügbar, sie sind im Stream enthalten, so dass Sie es nicht auf die normale Weise erhalten können. Sie können einen Weg finden, dies in den Dokumenten zu tun, die commons-fileupload verwenden , unter Abschnitt Verarbeiten der hochgeladenen Elemente .
Der obige Code liest die Datei zusammen mit anderen Formulardaten. Schauen Sie sich die req.getParameter();
Methode von MultipartRequest req
object
com.oreilly.servlet.MultipartRequest
in Ihrer Servlet / .java-Datei, die in Web-Inf/classes
enthalten ist
in Ihren Servlets doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
method add
MultipartRequest m = new MultipartRequest (Anfrage, "C: \ SavingDirectory");
Rufen Sie dann Ihre Variablen aus dem Formular wie folgt auf:
%Vor% und drucken Sie sie aus dem Servlet wie out.println(pdate);
Die beste Vorgehensweise zum Abrufen von HTML-Formularfeldern in Servlet ist die Verwendung von Apache commons-fileupload 1.3 jar.
Verwenden Sie Iterator durch multipart HTTPServletRequest durchlaufen und verwenden Sie eine for-Schleife, um zu überprüfen, ob es istFormField (), dann
%Vor%und Ihre HTML-Datei sollte so aussehen
%Vor%Tags und Links java jsp file-upload apache-commons-fileupload servlets