如何在 libcurl 中通过 POST 上传文件?(c++)
2 回答
您指的是 RFC 1867(即,当用户提交包含 type="file" 输入字段的 HTML 表单时浏览器发送的内容)?
如果是这种情况,您可能对http://curl.haxx.se/libcurl/c/postit2.html感兴趣
从这里的文档:
当使用 libcurl 的“简单”接口时,您会初始化会话并获得一个句柄(通常称为“简单句柄”),您可以将其用作您使用的简单接口函数的输入。用于
curl_easy_init
获取手柄。您继续在即将到来的传输中设置您想要的所有选项,其中最重要的是 URL 本身(如果没有指定的 URL,您将无法传输任何内容,因为您可能自己已经弄清楚了)。您可能还想设置一些回调,当数据可用时,这些回调将从库中调用,等等。
curl_easy_setopt
用于所有这些。当一切都设置好后,你告诉 libcurl 使用
curl_easy_perform
. 然后它将执行整个操作,并且在完成之前不会返回(成功与否)。转移完成后,您可以设置新选项并进行另一次转移,或者如果您完成了,请通过调用清除会话
curl_easy_cleanup
。如果您想要持久连接,您不会立即清理,而是提前运行并使用相同的简单句柄执行其他传输。
所以看起来你需要调用以下内容:
curl_easy_init
(初始化 curl 会话)curl_easy_setopt
(设置会话选项)curl_easy_perform
(执行卷曲)curl_easy_cleanup
(删除会话)
鉴于这些是 C API,在 C++ 源文件中调用它们应该没有问题。