libcurl 上传文件
时间: 2023-08-31 17:08:00 浏览: 75
可以使用libcurl库中提供的API来上传文件。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURL *curl;
CURLcode res;
struct curl_httppost *formpost = NULL;
struct curl_httppost *lastptr = NULL;
struct curl_slist *headerlist = NULL;
static const char buf[] = "Expect:";
curl_global_init(CURL_GLOBAL_ALL);
curl_formadd(&formpost, &lastptr,
CURLFORM_COPYNAME, "file",
CURLFORM_FILE, "example.txt",
CURLFORM_END);
curl = curl_easy_init();
headerlist = curl_slist_append(headerlist, buf);
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/upload");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
curl_formfree(formpost);
curl_slist_free_all(headerlist);
}
return 0;
}
```
这个示例代码使用了`curl_formadd()`函数将要上传的文件添加到了表单中,然后通过`curl_easy_setopt()`函数设置一些参数,包括要上传的URL、HTTP头、表单等。最后通过`curl_easy_perform()`函数执行请求并上传文件。注意,这个示例代码中的URL和文件名需要根据实际情况进行修改。
阅读全文