3

ユーザーが大きなビデオ ファイルをサード パーティの API エンドポイントにアップロードできるフォームがあります。API は API キーをパラメーターの 1 つとして想定しているため、キーを保護するために、フォームを PHP スクリプトに送信すると、PHP スクリプトは curl を使用してファイルを API に送信します。これは機能しますが、問題は、ファイルが2回アップロードされることを意味することです.1回はphpスクリプトにアップロードされ、次にPHPスクリプトからAPIにアップロードされます。2つを並行して行う方法はありますか?つまり、ajax のアップロードが完了する前に、curl スクリプトがアップロードを開始できるようにしますか?

4

1 に答える 1

1

post から put に変更すると、使用できます

$input = fopen('php://input','r');

そして、標準の大きなファイルが好きで、部分的なチャンクを curl で送信しますか?

チャンクで渡すには CURLOPT_READFUNCTION を使用する必要があります。

ユーザーが何らかの理由で停止した場合は、不足しているファイルをクリーンアップする必要があることに注意してください

ポストの使い方がわからない

小さな例

このオプションでカールアップを設定する

curl_setopt($ch, CURLOPT_READFUNCTION, functionCall));


function functionCall($ch, $data){
 global $input;
 return fread($input, $length);

}

$length は、各チャンクで送信されるデータの量です。アップロードを開始する前に、少なくともその金額をアップロードする必要があります。

8192は人気の長さです、ぜひお試しください

于 2013-07-31T22:28:12.173 に答える