альтернатива MIME API для поля libcurl CURLFORM_BUFFER - PullRequest
0 голосов
/ 27 апреля 2018

Недавно я перешел на curl 7.59 и в настоящее время заменяю загрузку данных формы на загрузку mime, как предложено в curl docs. Я не могу найти эквивалентный API-интерфейс MIME для установки поля CURLFORM_BUFFER, которое в настоящее время используется для установки поля имени файла в моем приложении. Кто-нибудь знает, какой MIME API использовать (что-нибудь похожее на curl_mime_data (CURLFORM_BUFFERPTR, CURLFORM_BUFFERLENGTH) или curl_mime_name (CURLFORM_COPYNAME))?

Это пример MIME, на который я ссылаюсь: https://curl.haxx.se/libcurl/c/smtp-mime.html

В соответствии с документами curl: CURLFORM_BUFFER

используется для пользовательских частей загрузки файлов без использования CURLFORM_FILE. Он сообщает libcurl, что содержимое файла уже присутствует в буфере. Параметр представляет собой строку, которая предоставляет поле имени файла в заголовке содержимого.

1 Ответ

0 голосов
/ 27 апреля 2018

Я думаю, что вы хотите curl_mime_filename () , который вы можете использовать для установки имени файла на обычной «части», чтобы оно выглядело и действовало как загрузка файла в приемник.

Пример

Загрузите изображение из памяти и сделайте так, чтобы оно отображалось как загружаемый файл:

 curl_mime *mime;
 curl_mimepart *part;

 /* create a mime handle */
 mime = curl_mime_init(easy);

 /* add a part */
 part = curl_mime_addpart(mime);

 /* point out the image data buffer */
 curl_mime_data(part, imagebuf, imagebuf_len);

 /* set a file name to make it look like a file upload */
 curl_mime_filename(part, "image.png");

 /* set a name on the part */
 curl_mime_name(part, "my-avatar");
...