1

いくつかの POST パラメーターを渡すと、ダウンロードするファイルが返される URL があります。サーバーにそのファイルをダウンロードさせ、ダウンロード中にユーザーに送信する最良の方法は何ですか?

前もって感謝します

4

2 に答える 2

0

応答で何をしたいかによって異なりますが、最も簡単な方法は、CURLOPT_RETURNTRANSFERを設定して、応答を出力することです。

$ch = curl_init("http://stackoverflow.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resp = curl_exec($ch);
curl_close($ch);

echo $resp;

失敗するとFALSEが返されることを忘れないでくださいcurl_exec。したがって、おそらくそれも確認する必要があります。

if ($resp === false) die('Unable to contact server');

サーバーにも応答を保存したい場合(基本的にダムプロキシである上記のメソッドの代わりに)、代わりにCURLOPT_WRITEFUNCTIONを使用できます。

$fp = fopen('my_file', 'w');
$ch = curl_init("http://stackoverflow.com/");
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'writefunc');
curl_exec($ch);
curl_close($ch);
fclose($fp);

function writefunc($ch, $data) {
    global $fp;
    echo $data;
    return fwrite($fp, $data);
}

write関数は2つの引数(curl handle、data)を取り、書き込まれたデータの量(この場合は出力された量)の戻り値を必要とします。

于 2012-07-16T03:55:23.393 に答える
0

全体にcURLを使用します。

現時点では参照はありませんが、少なくともマルチ cURL を使用すると、データのチャンクが入ってきたときにコールバック関数を起動することができます。あなたのクライアント。

于 2012-07-16T02:22:28.207 に答える