file upload / download über http

Status
Nicht offen für weitere Antworten.

little_b

Mitglied
Hallöchen,

ich benutze als client den HttpClient von jakarta.commens und als server ein servlet welches auf einem tomcat5 läuft.
Ich möchte Dateien in beide Richtungen austauschen.
Das handshake funktioniert und strings übertragen funktioniert auch in beide Richtungen.

Als erstes interessiere ich mich für den upload.
Dazu verwende ich auf dem client die FilePart Klasse um mehrere Files an den Request
zu übergeben.

Auf dem Server möchte ich dann die FileUpload Klassen verwenden.

Frage :
Kann ich den upload so realisieren, oder ist mein Ansatz falsch (kombination von filePart und uploadFile) ?


// CLIENT
Code:
   public PostMethod postFileUpload(String key, String value, File[] file)
        throws ApplicationException {

        PostMethod  postMethod = new PostMethod(UtilDef.SERVERURL);
        
        postMethod.getParams().setParameter(
                HttpMethodParams.RETRY_HANDLER,
                new DefaultHttpMethodRetryHandler(UtilDef.METHODRETRY, false));
        
        int statusCode;
        try {
            Part[] parts = new Part[file.length + 1];

            parts[0] = new StringPart(key, value);
            
            for (int i = 1; i <= file.length; i++) {
                parts[i] = new FilePart(file[i].getName(), file[i]);
            }

            postMethod.setRequestEntity(
                    new MultipartRequestEntity(parts, postMethod.getParams()));
            
            statusCode = client.executeMethod(postMethod);

            if (statusCode != HttpStatus.SC_OK) {
                throw new ApplicationException(statusCode);
            }

        } catch (HttpException exc) {
            throw new ApplicationException(ExceptionDef.EXC_HTTP, exc);
            
        } catch (IOException exc) {
            throw new ApplicationException(ExceptionDef.EXC_IO, exc);
        } //  DO NOT postMethod.releaseConnection() before response got data.
        
        return postMethod;
    }


// SERVER
Code:
// ...              
     case MessageDef.UPLOAD_FILES:
                    
                    DiskFileItemFactory factory = new DiskFileItemFactory();
                    ServletFileUpload fu = new ServletFileUpload(factory);
                    List items;
                    try {
                        items = fu.parseRequest(req);
                        Iterator iter = items.iterator();
                        while (iter.hasNext()) {
                            FileItem item = (FileItem) iter.next();
                    //...
                    break;

danke,

bastian
 

little_b

Mitglied
Ich verwende eine message um den Server mitzuteilen was ich möchte.
Bisher habe ich mit NameValuePairs gearbeitet und dann auf dem Server
nach der message geparst :

Code:
   // SERVER 
String message = req.getParameter(MessageDef.MSG.trim());
    switch(message) ...

Nun möchte ich aber ein File übertragen. Leider ist mein StringParts
auf dem server 'null'. Wenn ich anstelle des StringParts ein NameValuePair
verwende und danach filePart, dann ist die message immer noch null.

Könnte das an dem content type liegen?

Wie setzte ich den content type auf dem httpclient ?

Wie kann ich mit einem servlet einen string part auslesen?

danke,

bastian
 

little_b

Mitglied
Das mit dem setHeader ist shonmal ein guter Ansatz.
Ich nehme die bibos von jakarta-commons (steht genz oben im ersten thread) :)

Leider hat mir der Link nicht so geholfen ...

16.10 Apache Jakarta Commons HttpClient und Net downtop

Das Java-Netzwerkpaket und insbesondere die Klasse URLConnection beziehungsweise HttpConnection bieten Basisfunktionalität für den Zugriff auf Internet-Ressourcen. Allerdings fehlen komfortable Methoden, etwa für Cookies oder Multi-Part Form-Data POST, also Möglichkeiten zum Hochladen von Dateien. Die müsste jeder selbst implementieren, was Zeit und Nerven kostet.
:bahnhof:

Trotzdem vielen dank, hoffe ich find doch noch raus wie das geht,

bastian
 

Murray

Top Contributor
little_b hat gesagt.:
Leider hat mir der Link nicht so geholfen ...

16.10 Apache Jakarta Commons HttpClient und Net downtop

Das Java-Netzwerkpaket und insbesondere die Klasse URLConnection beziehungsweise HttpConnection bieten Basisfunktionalität für den Zugriff auf Internet-Ressourcen. Allerdings fehlen komfortable Methoden, etwa für Cookies oder Multi-Part Form-Data POST, also Möglichkeiten zum Hochladen von Dateien. Die müsste jeder selbst implementieren, was Zeit und Nerven kostet.
:bahnhof:

Was du hier zitierst, ist ja nur die Einleitung zu diesem Kapitel; die Aussage bezieht sich auf die Standard-Klassen und liefert quasi die Begründung dafür, warum es die anderen Libs gibt.

Ist das Beipsiel 16.10.1 nicht in etwa das, was du zum Upload brauchst?
 

little_b

Mitglied
Leider ist das Kapitel dann auch schon zu ende. Die Methoden die dort benutzt werden sind
alle deprecated, ich habs trotzdem mal probiert, ohne Erfolg.
Das Problem was ich im Moment habe ist aber leider Serverseitig.

Ich fasse einmal den Stream an um eine message(einen String) auszulesen
(clientseitig ein NameValuePair) und danach möchte ich ein file auslesen.
leider weiss ich immer noch nicht wie das geht. Muss ich alle bisherigen
NameValuePairs in StringParts umwandeln ?

Kann ich überhaupt

String message = req.getParameter(MessageDef.MSG.trim());

und später

items = fu.parseRequest(req);

machen, also kann ich überhaupt den request dann nochmal mit einem anderem content type anfassen ?

Wie parse ich einen StringPart ?


Und vielen dank für die Hilfe, *völlig verzweifelt*

bastian
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D CSV File Upload Netzwerkprogrammierung 5
M HTTP File Upload mit Prozessbar Funktioniert nicht. Netzwerkprogrammierung 8
5 File Upload/ ClassNotFoundException Netzwerkprogrammierung 9
R HTTP HttpURLConnection Large File Upload Netzwerkprogrammierung 1
E upload progress bei einem http file post Netzwerkprogrammierung 5
J File upload mit ftp Netzwerkprogrammierung 4
D Socket Gute Idee?: File als byte[] per ObjectIOStream übertragen Netzwerkprogrammierung 3
S Webserver für Jar File Netzwerkprogrammierung 4
H Applet soll XML-File auf Server speichern Netzwerkprogrammierung 6
R Apache HttpClient File Download? Netzwerkprogrammierung 3
0 Apache Commons File Object bekommen Netzwerkprogrammierung 4
D Server Client Verbindung - Unexpected End of File - Invalid HTTP Response Netzwerkprogrammierung 4
S RSS-Feed aus ini File Netzwerkprogrammierung 4
Z File über Socket lesen Netzwerkprogrammierung 3
N Socket File über Socket vom Server an Client versenden Netzwerkprogrammierung 15
F Protokoll file:/// Netzwerkprogrammierung 2
B JNLP File -> Web Application Netzwerkprogrammierung 10
DStrohma RMI Security Manager & Policy-File Netzwerkprogrammierung 8
DeviAn Über ein Linux Server ein Windows Server nach einer File fragen Netzwerkprogrammierung 6
P java file.exists() zuzerstörbar Netzwerkprogrammierung 7
E java.net.SocketException: Unexpected end of file from server Netzwerkprogrammierung 2
G SMB-File ausführen Netzwerkprogrammierung 15
J Problem beim Senden von File Netzwerkprogrammierung 4
J Mit der File Api Dateien von anderen Rechnern lesen ? Netzwerkprogrammierung 3
I unc pfad für die klasse file? Netzwerkprogrammierung 4
V file transfer problem Netzwerkprogrammierung 2
P File von http-Server kopieren Netzwerkprogrammierung 5
N File Transfer Netzwerkprogrammierung 5
D wie kann ich rmic ein .jar file übergeben? Netzwerkprogrammierung 3
R File chooser übers Netzwerk Netzwerkprogrammierung 3
G file download über https mit p12 Zertifikat Netzwerkprogrammierung 4
D Performance Problem beim File senden, empfangen Netzwerkprogrammierung 4
T file auf einen server laden Netzwerkprogrammierung 4
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
P nanoHttp upload.html page lädt nicht Netzwerkprogrammierung 4
B FTPS Upload Netzwerkprogrammierung 3
M Google Image Upload Netzwerkprogrammierung 12
M Apache Solr doc & pdf Upload Netzwerkprogrammierung 8
C apache commons net ftp bei upload unvollständig Netzwerkprogrammierung 3
C HTTP Mediawiki Upload Netzwerkprogrammierung 9
D FTP Pfadangabe für ftp-upload funktioniert nicht Netzwerkprogrammierung 5
1 Upload problem! org.apache.commons.net.ftp Netzwerkprogrammierung 3
E Applet zum Datei-Upload Netzwerkprogrammierung 3
P Bilder: FTP-Upload funktioniert nicht richtig Netzwerkprogrammierung 2
W HTTP-Upload Netzwerkprogrammierung 2
K Datei-Upload per FTP Netzwerkprogrammierung 2
E Upload großer Dateien? Netzwerkprogrammierung 5
eskimo328 progress bar mit upload speed Netzwerkprogrammierung 19
J Java Programm für Upload von Dateien per HTTP Netzwerkprogrammierung 7
J Datei Download vom Server Netzwerkprogrammierung 8
P Jenkins Login per Java Download Manager Netzwerkprogrammierung 15
T Download überprüfung... Netzwerkprogrammierung 9
S HTTP Download von Google-URL mit Parametern Netzwerkprogrammierung 1
S download PDF Netzwerkprogrammierung 2
V Datei Download Fenster Netzwerkprogrammierung 9
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
F HTTP HTTP-Download: Dateien in einem Verzeichnis ermitteln Netzwerkprogrammierung 8
T Download Programm - Download endet vorzeitig (bricht ab) Netzwerkprogrammierung 11
D HTTP Download - Skript im Weg Netzwerkprogrammierung 4
C Fehler bei PDF-Download Netzwerkprogrammierung 5
B FTP *.class download Netzwerkprogrammierung 2
eLogic Download eines Links Netzwerkprogrammierung 2
Dit_ FTP Download | "PassiveMode"-Socket öffnen Netzwerkprogrammierung 4
B HTTP Audio-Download per Direktlink Netzwerkprogrammierung 4
eLogic Download aus Internet Netzwerkprogrammierung 18
M Download von Webseite Netzwerkprogrammierung 4
A RMI Fortschritt bei Up/Download anzeigen Netzwerkprogrammierung 6
T Up- und Download mit https Netzwerkprogrammierung 14
A HTTP Download einer Datei mit "Statistiken" Netzwerkprogrammierung 2
B HTTP PDF Servlet download vom Server zum Client Netzwerkprogrammierung 3
Ollek Download einer Datei durch SFTP mit Java Netzwerkprogrammierung 12
P Name der Download-Datei ermitteln Netzwerkprogrammierung 8
Schandro Download von FTP Server mit maximal Geschwindigkeit Netzwerkprogrammierung 2
P HTTP Problem beim Download von einer Datei Netzwerkprogrammierung 4
ModellbahnerTT Download progress Netzwerkprogrammierung 4
D FTP Download Netzwerkprogrammierung 5
N Video download Netzwerkprogrammierung 4
hdi Webseite auf Download-Links prüfen und Download starten? Netzwerkprogrammierung 7
C Download-Fortschritt wird falsch angezeigt. Netzwerkprogrammierung 2
E Größe der Datei vor Download ermitteln Netzwerkprogrammierung 3
B FTP - Verzeichnis Download Netzwerkprogrammierung 3
A Download-Client Netzwerkprogrammierung 6
A download programm Netzwerkprogrammierung 2
K http-download Netzwerkprogrammierung 12
2 Redirect, Login und Download bei Rapidshare.com Netzwerkprogrammierung 4
M Download über URL Netzwerkprogrammierung 7
B knacken bei download von mp3 datei Netzwerkprogrammierung 2
N Download HTTP .php-Seite mit Anmeldung Netzwerkprogrammierung 5
I rmi und download von klassen Netzwerkprogrammierung 12
M Download-Manager in System/Browser einbinden Netzwerkprogrammierung 11
P Download funtioniert nicht richtig. Netzwerkprogrammierung 2
M FTP Verbindung und download von *.txt Netzwerkprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben