Andreas Korthaus: Schreiben tempor㤲r Datei umgehen

Beitrag lesen

Hallo!

Nachdem jetzt Dank eines PHP-Updates das versenden von binären Daten über cURL funktioniert, bliebe da noch eine klitzekleine Frage, die nicht unbedingt mit cURL zu tun hat:

Kann ich auch den Binärstring direkt an die cURL-Funktion übergeben, oder muß ich erst den String in eine Datei schreiben, und den Pfad dann übergeben?

So sieht das Script aus(funktioniert):

$file = "c:/www/test.txt";

$fp = fopen($file, "w");
    fputs($fp, $binary_string);
    fclose($fp);

$formvars["upfile"] = "@$file";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,"http://server.de/test.php");
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $formvars);

$result = curl_exec ($ch);
curl_close ($ch);

Ginge das evtl. direkt ohne Umweg über externe Datei?

Was mich außerdem etwas stutzig macht, wieso wird der Dateipfad und nicht der Dateiname übergeben:

[_FILES] => Array
        (
            [upfile] => Array
                (
                    [name] => c:/www/test.txt
                    [type] => text/plain
                    [tmp_name] => /tmp/phpmpC67k
                    [size] => 2675
                )

)

Viel Grüße
Andreas