すべて、ここで提案されたスレッドを検索しようとしましたが、利用可能ではありません.
libCURL POST リクエストを使用して、ファイルを Web サーバーに送信する必要があります。送信するファイルを作成しているので、存在することがわかります。ここには WireShark もインストールされているので、何が送信されるかがわかります。
デバッグ セッション中に、ファイルが読み取られ、読み取られたバッファが送信されていることがわかります。ただし、WireShark では、すべて FF FF FF FF シーケンスとして表示されます。
そして最後に、「本文の書き込み中にエラーが発生しました」というエラー メッセージが CURL に返されて操作が失敗します。
何が問題なのですか?
これが私がこれまでに試したことです:
1.
result = curl_formadd( &first, &last, CURLFORM_COPYNAME, "MyFile",
CURLFORM_FILE, (const char *) fileName.c_str(),
CURLFORM_FILENAME, (const char *) fileName.c_str(),
CURLFORM_CONTENTSLENGTH, (long) file.Length(),
CURLFORM_CONTENTTYPE, "image/bitmap", CURLFORM_END );
2.
result = curl_formadd( &first, &last, CURLFORM_COPYNAME, "MyFile",
CURLFORM_FILENAME, (const char *) fileName.c_str(),
CURLFORM_STREAM, &file, CURLFORM_CONTENTSLENGTH,
(long) file.Length(), CURLFORM_CONTENTTYPE,
"image/bitmap", CURLFORM_END );
次に、両方の場合で:
curl_easy_setopt( handle, CURLOPT_HTTPPOST, first );
curl_easy_setopt( handle, CURLOPT_POSTFIELDSIZE, file.Length() );
どちらの場合もヘッダーは正しく形成されますが、データ自体は送信されません。
誰かアイデアがありますか?私は非常に単純なものが欠けているように感じます...