Dateiupload mit EOF
jambok
- https
Hi,
will ne Datei via PHP über HTTP direkt an den Server hochladen. Hab folgende Befehle:
POST /convert.jsp HTTP/1.1
Host: ...
Origin: null
Referer: ...
Cookies: ...
Content-Type: multipart/form-data; boundary=----343267148def5665da8731af4cc4f143
--343267148def5665da8731af4cc4f143
Content-Disposition: form-data; name="stdin"; filename="Online-Vertretungsplan_Montag_28-10-13.pdf"
Content-Type: application/pdf
hier halt das PDF-Zeugs.
Leider steht irgendwann im Dokument ein EOF, danach wird der Uploadvorgang bzw. alle weiteren Befehle abgebrochen.
Ein Content-Transfer-Encoding mit base64 darf man ja nach rfc2616 nicht machen.
Welche Alternative besteht?
Hi,
will ne Datei via PHP über HTTP direkt an den Server hochladen. Hab folgende Befehle:
POST /convert.jsp HTTP/1.1
Host: ...
Origin: null
Referer: ...
Cookies: ...
Content-Type: multipart/form-data; boundary=----343267148def5665da8731af4cc4f143
Content-Length: [in bytes]
hastu?
Connection: Close
damit die Verbindung gleich geschlossen wird.
Horst
Hi,
will ne Datei via PHP über HTTP direkt an den Server hochladen. Hab folgende Befehle:
POST /convert.jsp HTTP/1.1
Host: ...
Origin: null
Referer: ...
Cookies: ...
Content-Type: multipart/form-data; boundary=----343267148def5665da8731af4cc4f143Content-Length: [in bytes]
Ergänzung: Die Länge der GESAMTEN Multipart-Message (der ganze POST)
hastu?
Connection: Close
damit die Verbindung gleich geschlossen wird.
Oder: HTTP/1.0 (ohne Requestheader Content-Length)
Horst
Hi,
will ne Datei via PHP über HTTP direkt an den Server hochladen. Hab folgende Befehle:
POST /convert.jsp HTTP/1.1
Host: ...
Origin: null
Referer: ...
Cookies: ...
Content-Type: multipart/form-data; boundary=----343267148def5665da8731af4cc4f143Content-Length: [in bytes]
hastu?
Connection: Close
damit die Verbindung gleich geschlossen wird.
Horst
Ah, ok, danke. Behebt das dann auch das EOF?
hi,
Ah, ok, danke. Behebt das dann auch das EOF?
Du hast genau ein EOF: Am Ende der Multipart-Message. Im Gunde ist das uninteressant, denn der Serverprozess liest soviele Bytes, wie in Content-Length (Request-Header) angegeben sind.
Ansonsten ein schönes Thema, das alles mal selbst zusammenzubauen, zum kennenlernen ;)
Horst
Tach!
will ne Datei via PHP über HTTP direkt an den Server hochladen. Hab folgende Befehle:
[Multipart HTTP-Request]
hier halt das PDF-Zeugs.
Leider steht irgendwann im Dokument ein EOF, danach wird der Uploadvorgang bzw. alle weiteren Befehle abgebrochen.
Zunächst, ein Content-Length wird nicht helfen. Das ist optional und die Grenze zwischen den Teilen wird durch den Boundary-Teil gekennzeichnet.
Was du nicht zeigst, ist der PHP-Teil. Da kann es in manchen Systemen passieren, dass beim Lesen einer Datei selbiges an einem EOF-Zeichen beendet wird - wenn man die Datei nicht im Binärmodus öffnet. Siehe fopen()-Beschreibung im Handbuch.
Welche Alternative besteht?
Den Upload-Teil mit curl machen und sich nicht selbst mit den Niederungen des Protokolls rumschlagen. Die Sache mit dem Binärmodus beim Lesen der Datei bleibt aber bestehen. Dazu wäre die Alternative, eine Funktion zu verwenden, die binary-safe ist, file_get_contents() zum Beispiel.
dedlfix.
Den Upload-Teil mit curl machen und sich nicht selbst mit den Niederungen des Protokolls rumschlagen. Die Sache mit dem Binärmodus beim Lesen der Datei bleibt aber bestehen. Dazu wäre die Alternative, eine Funktion zu verwenden, die binary-safe ist, file_get_contents() zum Beispiel.
Ok, danke, curl wollte ich mir auch mal anschauen.
Einlesen tue ich das bereits mit file_get_contents, also daran sollte es nicht liegen.
Du hast genau ein EOF: Am Ende der Multipart-Message.
Ok, dann ist ja wenigstens die PDF komplett. Allerdings fehlte bei mir noch der endende mime-boundary im befehl :S