2011-01-06 5 views
2

Gibt es eine mehrteilige POST-Bibliothek da draußen, die den gleichen Effekt erzielen, einen POST von einem HTML-Formular zu machen? Zum Beispiel: Laden Sie eine Datei in Java hoch oder laden Sie die Datei mit einem HTML-Formular hoch. Und auf der Serverseite erwartet es blindlings, dass die Anfrage von der Client-Seite eine mehrteilige POST-Anfrage sein und die Daten je nach Bedarf auslesen kann.Java-Multipart-POST-Bibliothek

Hat jemand das versucht?

gesagt, ich versuche zu sehen, ob ich

folgendes mit Java simulieren kann

Der Benutzer erstellt einen Blob durch ein HTML-Formular einreichen, die ein oder mehr Dateieingabefelder enthalten. Ihre App setzt blobstoreService.createUploadUrl() als Ziel (Aktion) dieses Formulars und übergibt die Funktion einen URL-Pfad eines Handlers in Ihrer App. Wenn der Benutzer das Formular abschickt, lädt der Browser des Benutzers die angegebenen Dateien direkt in den Blobstore. Der Blobstore überschreibt die Anfrage des Benutzers und speichert die hochgeladenen Dateidaten, ersetzt die hochgeladenen Dateidaten durch einen oder mehrere entsprechende Blob-Schlüssel und übergibt die umgeschriebene Anfrage dann an den Handler im URL-Pfad, den Sie für blobstoreService.createUploadUrl() angegeben haben. Dieser Handler kann zusätzliche Verarbeitung basierend auf dem Blob-Schlüssel durchführen. Schließlich muss der Handler eine Nur-Kopf-Weiterleitungs- Antwort (301, 302 oder 303) zurückgeben, typischerweise eine Browser-Weiterleitung zu einer anderen Seite, die den Status des Blob-Uploads angibt.

blobstoreService.createUploadUrl als Formularaktion festlegen und den Anwendungspfad zum Laden übergeben, wenn der POST des Formulars abgeschlossen ist.

<body> 
    <form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data"> 
     <input type="file" name="myFile"> 
     <input type="submit" value="Submit"> 
    </form> 
</body> 

Beachten Sie, dass das Upload-Formular so aussieht, wenn es als JSP erstellt wurde. Das Formular muss ein Datei-Upload-Feld enthalten, und der Enktyp des Formulars muss auf multipart/form-data festgelegt werden. Wenn der Benutzer das Formular übermittelt, wird der POST von der Blobstore-API verarbeitet, die den Blob erstellt. Die API erstellt auch einen Infosatz für das Blob und speichert den Datensatz im Datenspeicher und übergibt die umgeschriebene Anforderung als Blob-Schlüssel an den angegebenen Pfad an Ihre Anwendung.

Antwort

0

Sie benötigen keine Bibliothek; Dies ist mit den Standard-Java-Klassen möglich (example).

Auf der Serverseite implementieren Sie eine Java-Servlet-Lösung, die das Parsen von HTTP-Anforderungsparametern sehr einfach macht.

+0

Dank zu finden, aber was ist, wenn die Form ist, zu simulieren, so etwas wie die folgenden?

" method = "post" enctype = "multipart/form-data">
tom

+1

http://stackoverflow.com/questions/1378920/how-can-i-make-a-multipart-form-data-post- Anfrage-Verwendung-Java – trojanfoe

0

Eine vollständige und De-facto-Standard-HTTP-Implementierung (zum Beispiel in der Android-Plattform enthalten) Sie Apache httpcomponent