我需要使用多部分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名称或大文件支持。