mime api 替代 libcurl 的 CURLFORM_BUFFER 字段

mime api alternative for libcurl's CURLFORM_BUFFER field

最近我切换到 curl 7.59,并且正在按照 curl 文档的建议将表单数据上传替换为 mime 上传。我找不到等效的 mime api 来设置 CURLFORM_BUFFER 字段,该字段当前用于在我的应用程序中设置文件名字段。任何人都知道使用哪个 mime api(任何类似于 curl_mime_data(CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH) 或 curl_mime_name(CURLFORM_COPYNAME))的东西?

这是我指的 mime 示例:https://curl.haxx.se/libcurl/c/smtp-mime.html

根据卷曲文档: CURLFORM_BUFFER

用于不使用 CURLFORM_FILE 的自定义文件上传部分。它告诉 libcurl 文件内容已经存在于缓冲区中。参数为字符串,提供内容中的文件名字段header.

我认为您需要 curl_mime_filename(),您可以使用它在常规 "part" 上设置文件名,使其看起来和作为文件上传到接收器。

示例

从内存上传图像并使其显示为文件上传:

 curl_mime *mime;
 curl_mimepart *part;

 /* create a mime handle */
 mime = curl_mime_init(easy);

 /* add a part */
 part = curl_mime_addpart(mime);

 /* point out the image data buffer */
 curl_mime_data(part, imagebuf, imagebuf_len);

 /* set a file name to make it look like a file upload */
 curl_mime_filename(part, "image.png");

 /* set a name on the part */
 curl_mime_name(part, "my-avatar");