mime api替代libcurl的CURLFORM_BUFFER字段

时间:2018-04-27 08:41:04

标签: curl libcurl mime

最近我改用了卷曲7.59,我正在按照curl docs的建议用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

根据curl docs: CURLFORM_BUFFER

用于自定义文件上传部分而不使用CURLFORM_FILE。它告诉libcurl文件内容已经存在于缓冲区中。该参数是一个字符串,它在内容标题中提供文件名字段。

1 个答案:

答案 0 :(得分:1)

我认为您需要curl_mime_filename(),您可以使用{{3}}在常规"部分"上设置文件名。使它看起来像一个文件上传到接收器。

实施例

从内存中上传图片并将其显示为文件上传:

 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");