libcurl下载文件

来源:互联网 发布:matlab c语言 vb 编辑:程序博客网 时间:2024/06/14 10:33
#include "stdafx.h"#include <curl/curl.h>#include <iostream>#include <string>#pragma comment(lib,"libcurl.dll.a")using namespace std;struct FtpFile {const char *filename;FILE *stream;};static size_t my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream){struct FtpFile *out=(struct FtpFile *)stream;if(out && !out->stream) {out->stream=fopen(out->filename, "wb");if(!out->stream)return -1;}string str = (char*)buffer;printf("%s",str.c_str());return fwrite(buffer, size, nmemb, out->stream);}static int download(char *szUrl,char *szLocalPath){CURL *curl;CURLcode res;struct FtpFile ftpfile={szLocalPath, //定义下载到本地的文件位置和路径NULL};curl_global_init(CURL_GLOBAL_DEFAULT);curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL,szUrl);curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, my_fwrite);curl_easy_setopt(curl, CURLOPT_WRITEDATA, &ftpfile);curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);curl_easy_setopt(curl, CURLOPT_USERPWD, "SUREN:SUREN");res = curl_easy_perform(curl);curl_easy_cleanup(curl);if(res != CURLE_OK){cout<<stderr<<res<<endl;}printf("%d",res);}if(ftpfile.stream){fclose(ftpfile.stream);}curl_global_cleanup();return 0;}int main(){download("http://192.168.5.100/uptmp/bojie/bojie.jpg","C:/bojie.jpg");system("pause"); }

0 0
原创粉丝点击