Hallo!
Ich habe mir hier eben mal lokal cURL installiert und habe mit dem selben Code keine Probleme feststellen können. Die Datei die gesendet wird ist genauso groß wie die die letztendlich ankommt und auch dekomprimieren klappt.
Also hast Du das auch mal mit einem längeren String probiert? Bekomme dasselbe Problem wie beim schreiben auf die Kommandozeile, was ich ja nicht mache, da ich popen verwende. Wenn ich folgenden String verwende:
$string="asdaösdklaskdlasödsdf9s 9sd 09sd09fsdfus dasfjlkjfd9 0as09dasdjasljdlsakj ad9a 0sd89as klsajdksdf fs s jsdl jsdfi kej klsjdfljs kljkldsjk jldsfj kjdslfjlkdsfssf sdf sdf sdf dfsdfsdfsdf98sd90f8 df89 sd0f809ds8 0ds8f90 8s09f809s 8lasjd js kljkldsjk jldsfj kjdslfjlkdsfssf sdf sdf sdf dfsdfsdfsdf98sdsfsdfsdfs fs sdf sdfsdh jkhsdf sdjfh jkshdjhjdhjhdjkhshfiuez uziu z qpwouip oipwru09320uqiwuilwjledjwqil ueloi wjelidjuoiw eru39po893uprqweqüowuiquj4 oiäejf9ewu üä9poejkjdfdlksalödk öldklwqkökdölkwöl kdölwkdölwkepo qe p0928peoöu oj öoweio piwoeiöioe i üqeiüpqi üpq ie üpqie üp0qie pqeiüqieüp qieüpq iepüqi üei ddsaöl 90f8 df89 sd0f809ds8 0ds8f90 8s09f809s 8lasjd lX1wer 12 1rw qrw";
// so mach ich das jetzt:
$dump=gzcompress($string);
$fp = popen("curl --form clientdata=@- http://www.server.de/env.php > c:/www/curlausgabe.txt", "w");
fputs($fp, $dump);
pclose($fp);
echo "<pre>";
echo "String: ".strlen($string)."\n";
echo "gzip-String: ".strlen($dump)."\n";
$fp2 = fopen("c:/www/curlausgabe.txt", "r");
$result = fread($fp2,1000000);
$time2 = time();
fclose($fp2);
echo $result;
echo "</pre>";
Dann bekomm eich folgende Ausgabe:
String: 677
gzip-String: 353
Array
(
[clientdata] => Array
(
[name] => -
[type] => text/plain
[tmp_name] => /tmp/phpg3YiHy
[size] => 353
)
)
asdaösdklaskdlasödsdf9s 9sd 09sd09fsdfus ...
hat also geklappt. Wenn ich aber an den String oben ein paar Zeichen dranhänge, sowas wie:
$string="asdaösdklaskdlasödsdf9s 9sd 09sd09fsdfus dasfjlkjfd9 0as09dasdjasljdlsakj ad9a 0sd89as klsajdksdf fs s jsdl jsdfi kej klsjdfljs kljkldsjk jldsfj kjdslfjlkdsfssf sdf sdf sdf dfsdfsdfsdf98sd90f8 df89 sd0f809ds8 0ds8f90 8s09f809s 8lasjd js kljkldsjk jldsfj kjdslfjlkdsfssf sdf sdf sdf dfsdfsdfsdf98sdsfsdfsdfs fs sdf sdfsdh jkhsdf sdjfh jkshdjhjdhjhdjkhshfiuez uziu z qpwouip oipwru09320uqiwuilwjledjwqil ueloi wjelidjuoiw eru39po893uprqweqüowuiquj4 oiäejf9ewu üä9poejkjdfdlksalödk öldklwqkökdölkwöl kdölwkdölwkepo qe p0928peoöu oj öoweio piwoeiöioe i üqeiüpqi üpq ie üpqie üp0qie pqeiüqieüp qieüpq iepüqi üei ddsaöl 90f8 df89 sd0f809ds8 0ds8f90 8s09f809s 8lasjd lX1wer 12 1rw qrw12345";
dann erhalte ich folgende Ausgabe mit selbigem Script:
String: 682
gzip-String: 358
Array
(
[clientdata] => Array
(
[name] => -
[type] => text/plain
[tmp_name] => /tmp/phpihTD3G
[size] => 53
)
)
Warning: gzuncompress: buffer error in /www/webseite/env.php on line 12
Wie gesagt, works for me.
auch mit langen Strings? Danke das Du Dir die Mühe gemacht hast!
Grüße
Andreas