int curl_post_jpg(char *file_path)
{
int ret;
char ip[32];
int port;
char url[256] = {0};
sprintf(url,"http://test.server.net/post.php?name=test");
printf("url :%s\n", url);
ret = get_jpg_data(file_path);
jpg_data *pic = p_jpg_data;
if (NULL == pic || NULL == pic->data)
{
printf("post data is null\n");
return -1;
}
const char *data = pic->data;
int len = pic->size;
CURL *curl = curl_easy_init();
curl_mime *mime;
curl_mimepart *part;
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); //開啟/關閉 列印調試詳細資訊模式
curl_easy_setopt(curl, CURLOPT_URL, url); //提供要在請求中使用的URL
curl_easy_setopt(curl, CURLOPT_TIMEOUT,10L); //設定上傳超市時間10s
mime = curl_mime_init(curl);
part = curl_mime_addpart(mime);
curl_mime_data(part, data, len);
curl_mime_name(part, "xxx");
curl_mime_filename(part, "xxx.jpg");
curl_mime_type(part, "application/octet-stream");
curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
printf("start save result:\n");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, NULL); //傳遞給write回調的自定義指針
printf("end save result !\n");
CURLcode code = curl_easy_perform(curl);
if (code == CURLE_OK)
{
printf("perform successful\n");
ret = 0;
}else{
printf("perform failed\n");
ret = -1;
}
curl_easy_cleanup(curl);
curl_mime_free(mime);
if(p_jpg_data)
{
free(p_jpg_data);
p_jpg_data = NULL;
}
return ret;
}