ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
428
428
EMPFEHLEN
-
Hallo,
Ich möchte mehrere FILEs auf einen Server laden. Da es mir nur erlaubt ist über ein sehr eingeschränktes HTTP Webinterface Dateien hochzuladen, habe ich es ich C/C++ fast fertig realisiert.
Über den Browser gesnifft sehen die Packets eines Uploads folgender Maßen aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
Send: Return Code: 0x00000000 POST ... HTTP/1.1 User-Agent: Opera/9.80 (Windows NT 6.1; U; de) Presto/2.10.229 Version/11.61 Host: ... Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 Accept-Language: de-AT,de;q=0.9,en;q=0.8 Accept-Encoding: gzip, deflate Referer: ... Cookie: ASPSESSIONIDQSTRSARB=JIMNHHCBIDABIEOFLKFGMJED; gesperrt=alle|direction=asc|rdo_keinFilter=checked|rdo_rh_bez=checked| Connection: Keep-Alive Content-Length: 16863 Content-Type: multipart/form-data; boundary=----------SVGCWTfxlxZIMwQSpaWDfO Send: Return Code: 0x00000000 ------------SVGCWTfxlxZIMwQSpaWDfO Content-Disposition: form-data; name="__VIEWSTATE" /wEPDwUKMTI0NTA2ODE5Nw9kFgJmD2QWBAIBD2QWAgIBDxYCHglpbm5lcmh0bWwFDE11bHRpLVVwbG9hZGQCBQ8WAh4HZW5jdHlwZQUTbXVsdGlwYXJ0L2Zvcm0tZGF0YRYCAgEPZBYSZg9kFgJmDxAPFgQeCENzc0NsYXNzBQdoaW53ZWlzHgRfIVNCAgJkZBYBZmQCAg9kFgJmDxBkZBYAZAIEDxYCHgdWaXNpYmxlaBYCAgEPEA8WBB4EVGV4dAUOQXV0b3NrYWxpZXJ1bmceB0NoZWNrZWRnZGRkZAIFDxYCHwRoFgICAQ8QDxYEHwUFGFByb3BvcnRpb25lbiBiZWliZWhhbHRlbh8GZ2RkZGQCBg8WAh8EaBYCAgEPEA8WAh8FBQ1CaWxkIHN0cmVja2VuZGRkZAIHDxYCHwRoFgICAQ8QDxYEHwUFHlNjaGxhZ3NjaGF0dGVuIGhpbnp1ZiZ1dW1sO2dlbh8GaGRkZGQCCA8PFgIfBQURRGF0ZWkgw7xiZXJ0cmFnZW5kZAIJDw8WAh8FBQpTY2hsaWXDn2VuZGQCCg8PFgYfAgUHaGlud2Vpcx8FBZwBPHA+PGI+R2VzYW10Z3LDtsOfZTwvYj48YnI+PHA+PGI+QWNodHVuZyE8L2I+IERpZSBHZXNhbXRncsO2w59lIGRlciBob2NoenVsYWRlbmRlbiBEYXRlaWVuIGRhcmYgZm9sZ2VuZGVuIFdlcnQgbmljaHQgw7xiZXJzY2hyZWl0ZW46PGI+IDUwIE1CICg1MTIwMCBLQik8L2I+HwMCAmRkZIk3+uj2tP7wpv5anE4HXcDgiRBN ------------SVGCWTfxlxZIMwQSpaWDfO Content-Disposition: form-data; name="ctl00$cph_text$ctl01" 222750495 ------------SVGCWTfxlxZIMwQSpaWDfO Content-Disposition: form-data; name="ctl00$cph_text$File1"; filename="Test.pdf" Content-Type: application/pdf %PDF-1.4 %âãÏÓ 11 0 obj<</H[556 171]/Linearized 1/E 6413/L 15445/N 2/O 14/T 15178>> endobj xref 11 13 0000000016 00000 n 0000000727 00000 n 0000000556 00000 n 0000000804 00000 n 0000000932 00000 n 0000001038 00000 n 0000001775 00000 n 0000002389 00000 n 0000003081 00000 n 0000003320 00000 n 0000003565 00000 n 0000003641 00000 n 0000006158 00000 n trailer <</Size 24/Prev 15167/Root 12 0 R/Info 10 0 R/ID[<29803daf70ae9e64e763840ef915317b><37140295968d7f43ba601f2472d04627>]>> startxref 0 %%EOF 13 0 obj<</Length 93/Filter/FlateDecode/L 99/S 56>>stream xÚb```a``ªd`f`Öaàb@
Es handelt sich dabei um einen "Multiupload" mit nur einer Datei. Der Rücksende String meiner Lösung fängt mit "HTTP/1.1 200 OK" an, von dem her besteht kein syntax Fehler. Die Datei befindet sich jedoch nicht am Server.
Folgendes verwirrt mich ein bischen:
Wofür ist das boundary und wie wird dieses generiert? (Länge?)
Der File Inhalt steht sehr merkwürdig darin. Kann man das einfach binär rüberschicken?
Im Internet habe ich etwas über MIME encoding herausgefunden, jedoch bin ich noch zu keinem Ergebnis gekommen.
Kann mir jemand ein Beispiel zeigen, wie man eine PDF Datei mit POST hochlädt?
mfg. Poseidon
-
10.02.12 10:00 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.Das kannst du generieren wie du willst, du mußt nur dafür sorgen, das dieses Boundary nicht in den Daten selbst vorkommen kann.
Ja, in der Regel schon. Man kann auch base64 o.ä. kodieren, muss das dann aber im MIME Header spezifizieren.
Schau dir die entsprechenden RFCs zu MIME an.
Zeig deinen Code bzw. deinen POST Aufruf.
GrußIf at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
10.02.12 10:46 #3
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
hab mal ein Upload-Script mit der Bash implementiert und hatte da ein ähnliches Problem. Nach langem suchen fand ich dann die Lösung für mein Problem:
Nach der Datei steht ja nochmal die Boundary diese muss aber noch mit zwei "--" danach abgeschlossen werden;
Beispiel:
Code :1 2 3 4 5 6 7
-------------BOUNDARY_49324989 Content-Disposition: form-data; name="datei"; filename="bubb.txt" Content-Type: text/plain bla bla bla bla daten blubb -------------BOUNDARY_49324989--
Hat mich viel Nerven gekostet bis ich endlich das kleine Detail mit dem "--" im RFC gelesen habe
Gruß,
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
Ähnliche Themen
-
Http-get Http-post
Von Movera im Forum PHPAntworten: 2Letzter Beitrag: 04.07.06, 17:56 -
Http-get Http-post
Von Movera im Forum HTML & XHTMLAntworten: 0Letzter Beitrag: 04.07.06, 16:41 -
HTTP Post mit PHP
Von matzseesi im Forum PHPAntworten: 5Letzter Beitrag: 28.08.05, 23:26 -
PHP HTTP Post Dateiuploadproblem
Von hpvw im Forum PHPAntworten: 4Letzter Beitrag: 14.02.03, 20:08 -
Http Post
Von Wolfman im Forum PHPAntworten: 9Letzter Beitrag: 28.07.01, 13:15





Zitieren

Login






