我想用 cURL 上传文件。它不是硬盘上的现有文件,而是在内存中(是的,我在运行时编写文件并希望消除临时文件)。
IIRC,通过cURL,我们可以自定义发送普通post数据时的读取回调函数。那么是否有类似的机制可以在读取文件时用于自定义回调函数,尤其是与多部分帖子一起使用时?
谢谢和最好的问候!
我想用 cURL 上传文件。它不是硬盘上的现有文件,而是在内存中(是的,我在运行时编写文件并希望消除临时文件)。
IIRC,通过cURL,我们可以自定义发送普通post数据时的读取回调函数。那么是否有类似的机制可以在读取文件时用于自定义回调函数,尤其是与多部分帖子一起使用时?
谢谢和最好的问候!
是的,curl_formadd 的CURLFORM_STREAM是你的朋友:
告诉 libcurl 使用 CURLOPT_READFUNCTION 回调来获取数据。您传递给 CURLFORM_STREAM 的参数是传递给读取回调的第四个参数的指针。如果您希望该部分看起来像文件上传,请同时设置 CURLFORM_FILENAME 参数。请注意,使用 CURLFORM_STREAM 时,CURLFORM_CONTENTSLENGTH 也必须设置为部分的总预期长度。(libcurl 7.18.2 中添加的选项)