C++ 使用libcurl通过HTTP从内存(而不是磁盘)发送文件
我想通过C++编写的程序发送图片好啊 它可以工作,但我想将图片从预加载的载体发送到变量char(你知道我的意思吗?首先,我将图片加载到变量中,然后发送变量),因为现在我必须指定磁盘上图片的路径 我想用CURL库来编写这个C++程序,而不是通过EXE。分机。C++ 使用libcurl通过HTTP从内存(而不是磁盘)发送文件,c++,image,upload,libcurl,C++,Image,Upload,Libcurl,我想通过C++编写的程序发送图片好啊 它可以工作,但我想将图片从预加载的载体发送到变量char(你知道我的意思吗?首先,我将图片加载到变量中,然后发送变量),因为现在我必须指定磁盘上图片的路径 我想用CURL库来编写这个C++程序,而不是通过EXE。分机。 我还发现了这样一个程序(我对它做了一些修改)阅读curl\u formadd的文档: 具体而言,在“选项”下: 卷曲形式内容 后跟指向内容的指针 在这部分中,实际要发送的数据 走开。libcurl将使用指针和 请参考应用程序中的数据, 所以你
我还发现了这样一个程序(我对它做了一些修改)阅读
curl\u formadd
的文档:
具体而言,在“选项”下:
卷曲形式内容
后跟指向内容的指针
在这部分中,实际要发送的数据
走开。libcurl将使用指针和
请参考应用程序中的数据,
所以你必须确保它一直保留到
curl不再需要它了。如果数据
是不是NUL终止了,或者如果你愿意的话
它必须包含零字节,您必须设置
它的长度与
卷曲形式内容长度
卷曲形内容长度
然后是一个长的给定长度
内容的完整性。请注意,对于
CURLFORM_流内容,此选项
这是强制性的
所以不是
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\u jpg\u数据并将数据读入其中,或者您需要对此进行解释吗?CURLFORM\u PTRCONTENTS在这里的用法不正确,它不会创建文件上载部分
相反,应该使用从内存中已经存在的缓冲区发送图像
curl_formadd(&formpost,
&lastptr,
CURLFORM_COPYNAME, "send",
CURLFORM_BUFFER, "nowy.jpg",
CURLFORM_BUFFERPTR, data,
CURLFORM_BUFFERLENGTH, size,
CURLFORM_END);