libcurlでPOSTでファイルをアップロードする方法は?(c++)
2 に答える
RFC 1867 (つまり、ユーザーが type="file" の入力フィールドを含む HTML フォームを送信したときにブラウザが送信するもの) を参照していますか?
その場合は、http://curl.haxx.se/libcurl/c/postit2.htmlに興味があるかもしれません。
ここのドキュメントから:
libcurl の「簡単な」インターフェースを使用する場合、セッションを開始してハンドル (「簡単なハンドル」と呼ばれることが多い) を取得します。このハンドルは、使用する簡単なインターフェース関数への入力として使用します。
curl_easy_initハンドルを取得するために使用します。今後の転送で必要なすべてのオプションを設定して続行します。その中で最も重要なのは URL 自体です (ご自分でわかっているかもしれませんが、URL を指定せずに何も転送することはできません)。データが利用可能になったときにライブラリから呼び出されるいくつかのコールバックも設定したい場合があります。
curl_easy_setoptこれらすべてに使用されます。すべてのセットアップが完了したら、libcurl に を使用して転送を実行するように指示します
curl_easy_perform。その後、操作全体を実行し、完了するまで戻りません (成功するかどうかに関係なく)。転送が完了したら、新しいオプションを設定して別の転送を行うことができます。完了したら、 を呼び出してセッションをクリーンアップします
curl_easy_cleanup。永続的な接続が必要な場合は、すぐにクリーンアップするのではなく、先に進み、同じ簡単なハンドルを使用して他の転送を実行します。
したがって、次のように呼び出す必要があるようです。
curl_easy_init(curl セッションを初期化します)curl_easy_setopt(セッションオプションを設定します)curl_easy_perform(カールをする)curl_easy_cleanup(セッションを削除)
これらは C API であるため、C++ ソース ファイル内で問題なく呼び出すことができます。