multipart/form-data-Upload-Alptraum

Status
Nicht offen für weitere Antworten.

Rex

Bekanntes Mitglied
Liebe Freunde,

ich sende per Java die Bytedaten einer Bilddatei an mein PHP-Script.
Wenn ich dort die Daten wieder zusammenbaue, erhalte ich leider nur eine verstümmelte Datei.
Ich habe gehört, dass man solche Dateien per multipart/form-data transferieren muss.

Ich schätze, es handelt sich in diesem Falle nur um ein paar Header, die zu Beginn der Datei gesendet werden müssen, oder?

Vielen Dank für eure Hilfe!
MFG
Rex
 
S

SlaterB

Gast
Versuche doch zunächst mal, die Datei mit einem normalen Browser zu schicken.
Wenn das klappt, dann den Request in Java nachbauen, alle Header ausgeben und anschauen usw.
 

Rex

Bekanntes Mitglied
Wie lasse ich mir den die Header anzeigen, die der Server empfängt?

Vielen Dank!
MFG
Rex
 

Rex

Bekanntes Mitglied
OK; habe mir jetzt was aus einer RFC zusammengeschnetzelt.
Ein Problem ist noch der Dateityp.
Mit getName erhalte ich den Dateinamen.
Jetzt muss ich aber vom Ende des Dateinamens bis zum ersten Punkt (.) gehen, damit ich den Datei-TYP erhalte. In allen Fällen gehe ich davon aus, dass es sich um eine Image handelt.
Nur der DateiTYP muss aus dem ermittelten DateiNAMEN extrahiert werden.

Wie geht das?

Vielen Dank
MFG
Rex
 
S

SlaterB

Gast
redest du jetzt vom Java-Request oder von der PHP-Verabeitung im Server?

bei letzteren weiß ich eh nicht weiter ;)

in Java ansonsten basteln: String.lastIndexOf(), substring(), ..
 

Rex

Bekanntes Mitglied
So, ich sende den folgenden Header an mein PHP-Script:
Content-type: multipart/form-data, boundary=AaB03x

--AaB03x
content-disposition: form-data; name="data"
Content-type: multipart/mixed, boundary=BbC04y

--BbC04y
Content-disposition: attachment; filename="sonnenblume.bmp"
Content-type: image/bmp
Content-Transfer-Encoding: binary

...DATEN VOM BILD...
--BbC04y--
--AaB03x--

Das scheint allerdings falsch zu sein, denn anders als beim normalen Upload per Browser, gibt mein PHP-Script hier aus, er hätte keine File von mir erhalten.

(Leider weiß ich nicht, wie so ein Header aussieht, wenn er vom Browser geschickt wird, sonst hätte ich ihn ja verwenden können).

Um solch einen Header zu generieren (und alles was dran ist) habe ich folgende Page zu Rate gezogen:
http://community.roxen.com/developers/idocs/rfc/rfc1867.html
--


Ich wäre euch sehr dankbar für eine schnelle Hilfe!

MFG
Rex
 

KSG9|sebastian

Top Contributor
Code:
URL url = new URL("http://www.eecs.berkeley.edu/~loarie/test.colors.gif");
		URLConnection uc = url.openConnection();
		Map headerFields = uc.getHeaderFields();
		Iterator keyIterator = headerFields.keySet().iterator();
		while(keyIterator.hasNext()){
			Object key = keyIterator.next();
			Object value = headerFields.get(key);
			System.out.println(key + "=" + value);
		}

So kannst du dir den Header anschauen. Anstatt der URL zu nem Bild musst du halt nen POST-Request auseinanderpflücken.
Häng den Code am besten in ein Servlet in die doPost-Methode rein. Und dann hängst du eben ein Formular mit dem oben genannten Content-Type davor. Dann wirst du sehen was richtig ist :)
Das dürft auch helfen:

response.setContentType("image/bmp");
response.setHeader("Content-disposition", "inline; filename="+pdfFile);
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M [Java Mail] Multipart beim Senden funktioniert nicht. Allgemeine Java-Themen 11
B JAX - RS.... Multiple parameter application/x-www-form-urlencoded.... Allgemeine Java-Themen 6
L nach form submit textfeld an java übergeben? Allgemeine Java-Themen 2
L iText PDF Form-Felder werden nach Bearbeitung mit iText nicht mehr richtig erkannt. Allgemeine Java-Themen 2
R Servelt mit <form action=""> aufrufen (.jsp) Allgemeine Java-Themen 7
P JAVA Bilder/Videos in Form von Files vergleichen Allgemeine Java-Themen 7
P aus Thread auf Form zugreifen Allgemeine Java-Themen 9
D Form mit StatusFeld (Thread problem) -gelöst- Allgemeine Java-Themen 4
J String (in Timestamp-Form) in Timestamp umwandeln Allgemeine Java-Themen 2
P Filestream von HTML-Form zu Servlet Allgemeine Java-Themen 6
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
K Data Konverter - Probleme mit Byte[] Kodierung Allgemeine Java-Themen 3
T Youtube Data API Allgemeine Java-Themen 12
B java.io.IOException: Problem reading font data. Allgemeine Java-Themen 9
L Data Dictionary Allgemeine Java-Themen 13
M Data Dump für Entwicklung Allgemeine Java-Themen 2
G Brauche hilfe bei JMF: Wie eigene Streaming Data Source! Allgemeine Java-Themen 4
G MySQL-Problem (LOAD DATA INFILE) Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben