我想通过用C ++编写的程序发送图片。 - 好 它的工作原理,但我想将预先加载的载体中的图片发送到变量char(你知道我的意思吗?首先,我将图片加载到变量然后发送变量),因为现在我必须指定磁盘上图片的路径。
我想用c ++编写这个程序,而不是通过exe编写。延期。 我也找到了这样一个程序(我已经对它进行了一些修改)
答案 0 :(得分:10)
CURLFORM_PTRCONTENTS在这里使用不正确,它不会创建文件上传部分。
相反,应该使用CURLFORM_BUFFER从内存中已存在的缓冲区发送图像。
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "send",
CURLFORM_BUFFER, "nowy.jpg",
CURLFORM_BUFFERPTR, data,
CURLFORM_BUFFERLENGTH, size,
CURLFORM_END);
答案 1 :(得分:1)
阅读curl_formadd
:http://curl.haxx.se/libcurl/c/curl_formadd.html
具体来说,在“选项”下:
CURLFORM_PTRCONTENTS
后跟一个指向内容的指针 这部分,实际数据发送 远。 libcurl将使用指针和 参考应用程序中的数据, 所以你必须确保它一直存在 卷曲不再需要它。如果数据 不是NUL终止,或者如果您愿意 要包含零字节,必须设置 它的长度 CURLFORM_CONTENTSLENGTH。
CURLFORM_CONTENTSLENGTH
然后是长的给出长度 的内容。请注意 CURLFORM_STREAM内容,此选项 是强制性的。
所以而不是
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "send",
CURLFORM_FILE, "nowy.jpg",
CURLFORM_END);
你想要像
这样的东西 curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "send",
CURLFORM_PTRCONTENTS, p_jpg_data,
CURLFORM_CONTENTSLENGTH, jpg_data_len,
CURLFORM_END);
我假设您知道如何创建p_jpg_data
并将数据读入其中,或者您是否需要解释?