Hi!
Zunächst mal funktionieren deine Zeilenenden bestenfalls zufällig. RFC 2616 definiert dass die einzig wahren Zeilenenden innerhalb HTTP CRLF sind, also \0x0D\0x0A in PHP (oder such dir ein anderes Zahlensystem). (Und ja, ich habe das in der Vergangenheit auch öfter mal falsch vorgemacht. Sorry dafür.)
Ohha! Naja, selbiges habe ich wohl unten falsch gemacht. Kannst Du mir mal sagen wie man sowas "umrechnet"? Also CRLF in \0x0D\0x0A ?
Warum eigentlich "keep-Alive"? Ich dachte immer HTTP wäre zustandslos, was soll dann sowas überhaupt?
Mach also erstmal aus dem HTTP 1.1 ein 1.0 und sieh dann weiter.
Tatsächlich, und die Umbrüche sind noch wie sie waren, aber die solte ich dann trotzdem noch ändern, habe ich nur noch nirgends gehört(Manual, FAQ...), oder hat der Header "Accept-Charset: iso-8859-1,*,utf-8\n" was damit zu tun?
Aber ganz klappt es immer noch nicht:
[_FILES] => Array
(
[da_name] => Array
(
[name] => da_filename
)
)
da stimmt wohl was nicht ;-) Aber ich habe mich doch an die Vorgaben gehalten, oder?
Ich habe es gerade nochmal mit Deinen Zeilenumbrüchen versucht - nix - Timeout.
So siehts aus:
$data = $boundary."\0x0D\0x0A";
$data .= "Content-Disposition: form-data; ";
$data .= "name="$name"; ";
$data .= "filename="$filename"\0x0D\0x0A";
$data .= "Content-Type:text/plain\0x0D\0x0A\0x0D\0x0A";
$data .= "$gzstring\0x0D\0x0A";
$header = "POST $path HTTP/1.0\0x0D\0x0A";
$header .= "Host: $host\0x0D\0x0A";
$header .= "Content-length: ".strlen($data)."\0x0D\0x0A";
$header .= "Content-type: multipart/form-data; boundary=$boundary\0x0D\0x0A\0x0D\0x0A";
$header .= $data;
$header .= $boundary."--\0x0D\0x0A";
Grüße
Andreas