cURLでファイルをアップロードしたい。ハードディスク上の既存のファイルではなく、メモリ内にあります(はい、実行時にファイルを作成し、一時ファイルを削除したいです)。
IIRC では、cURL を使用して、通常の投稿データを送信する際の read コールバック関数をカスタマイズできます。ファイルを読み取るときにコールバック関数をカスタマイズするために使用できる同様のメカニズムはありますか?特にマルチパートポストと共に使用する場合は?
よろしくお願いします!
cURLでファイルをアップロードしたい。ハードディスク上の既存のファイルではなく、メモリ内にあります(はい、実行時にファイルを作成し、一時ファイルを削除したいです)。
IIRC では、cURL を使用して、通常の投稿データを送信する際の read コールバック関数をカスタマイズできます。ファイルを読み取るときにコールバック関数をカスタマイズするために使用できる同様のメカニズムはありますか?特にマルチパートポストと共に使用する場合は?
よろしくお願いします!
はい、curl_formadd のCURLFORM_STREAMはあなたの友達です:
CURLOPT_READFUNCTION コールバックを使用してデータを取得するよう libcurl に指示します。CURLFORM_STREAM に渡すパラメーターは、読み取りコールバックの 4 番目の引数に渡されるポインターです。パーツをファイル アップロードのように見せたい場合は、CURLFORM_FILENAME パラメータも設定します。CURLFORM_STREAM を使用する場合、CURLFORM_CONTENTSLENGTH もパーツの予想される合計長で設定する必要があることに注意してください。(libcurl 7.18.2 で追加されたオプション)