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