1

マルチパート POST リクエストを使用して大きなファイル (>2 GB) をアップロードする必要があります。ソース ファイルには、Unicode 記号を使用して名前を付けることができます。問題は、libcurl が Windows で Unicode wfopen をサポートしていないため、通常の方法ではこのタスクを完了できないことです。

curl_formadd(&formpost, &lastptr,
  CURLFORM_COPYNAME, fieldname,
  CURLFORM_FILENAME, filename,
  CURLFORM_FILE, full_path_to_file,
  CURLFORM_CONTENTTYPE, "application/octet-stream",
  CURLFORM_END);

curl_formadd の CURLFORM_STREAM オプションを CURLOPT_READFUNCTION と組み合わせて使用​​できることがわかりました。ここで、CURLFORM_CONTENTSLENGTH オプションを使用してファイル サイズを手動で設定する必要がありますが、「long long」ファイル サイズを設定する必要がある場合、パラメーターとして「long」のみを受け入れます。curl マニュアルを調べたところ、 CURLOPT_POSTFIELDSIZE_LARGE オプションが見つかりましたが、私の場合は何もしません。マルチパート リクエスト システムはこのパラメータを無視しているようです。Unicode 名や大きなファイルのサポートをあきらめたくありません。

4

0 に答える 0