Senden zusätzlicher Daten mit multipart [duplizieren]

7

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.

  • Ist 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 .
  • senden muss
  • Oder gibt es ein anderes Problem in meinem Code?
Bhushan 27.02.2013, 06:07
quelle

5 Antworten

9
  

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 .

    
Harry Joy 27.02.2013, 06:17
quelle
9

Nun, die Parameter sind nicht verloren, es ist nur, dass sie Teil des Request Stream sind.

Sie müssen alle Elemente aus der Anfrage abrufen und iterieren und entsprechend anhand ihres Elementtyps entsprechend behandeln

%Vor%

Heres, wie Sie es bekommen können

%Vor%     
Sudhakar 27.02.2013 06:36
quelle
1
%Vor%

Der obige Code liest die Datei zusammen mit anderen Formulardaten. Schauen Sie sich die req.getParameter(); Methode von MultipartRequest req object

an     
Bhushan Dhamdhere 20.07.2015 09:57
quelle
0
  1. Laden Sie die JAR-Datei com.oreilly.servlet.MultipartRequest
  2. herunter
  3. Importieren Sie com.oreilly.servlet.MultipartRequest in Ihrer Servlet / .java-Datei, die in Web-Inf/classes enthalten ist
  4. 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);

    
Wandile Nxumalo 27.05.2013 14:04
quelle
0

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%     
Cobweb 05.02.2014 08:48
quelle