问个libcurl使用问题

bofrobber110 2009-08-23 02:42:35
我用libcurl库进行文件上传,在用表单方式上传文件,传输一些文本没有问题,为什么传输一些图片就出问题了

void UploadFileToUrl(const char* url,const char* filename)
{

char* buf;
FILE* file = fopen(filename,"r");
fseek(file,0,SEEK_END);
long len = ftell(file);
fseek(file,0,SEEK_SET);
buf = new char[len];

fread(buf,len,1,file);
fclose(file);

CURL* curlHandle = curl_easy_init();
struct curl_httppost *post=NULL;
struct curl_httppost *last=NULL;
curl_formadd(&post, &last,
CURLFORM_COPYNAME, "pic",
CURLFORM_BUFFER, filename,
CURLFORM_BUFFERPTR, buf,
CURLFORM_BUFFERLENGTH,len,
CURLFORM_END);
curl_formadd(&post, &last,
CURLFORM_COPYNAME, "Submit",
CURLFORM_COPYCONTENTS,"",
CURLFORM_END);
curl_formadd(&post, &last,
CURLFORM_COPYNAME, "action",
CURLFORM_COPYCONTENTS,"uppic",
CURLFORM_END);
/* Set the form info */
curl_easy_setopt(curlHandle,CURLOPT_URL,url);
curl_easy_setopt(curlHandle, CURLOPT_POST, 1);
curl_easy_setopt(curlHandle, CURLOPT_HTTPPOST, post);
curl_easy_perform(curlHandle); /* post away! */
/* free the post data again */
curl_formfree(post);
curl_easy_cleanup(curlHandle);

delete buf;
buf = NULL;

}

上传的图片发现图片最后部分数据模糊,对网页上传与libcurl上传进行过抓包分析,发现图片的最后内容网页上传ok,libcurl上传的少了些内容,请问这是什么原因造成的,如果修改
...全文
321 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bofrobber110 2009-08-23
  • 打赏
  • 举报
回复
问题解决,用CURLFORM_BUFFERPTR, buf,
CURLFORM_BUFFERLENGTH,len,
对非文本会处理成文本,用SURLFORM_FILE就不会有这个问题

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧