LINUX.ORG.RU

curl_formadd()


0

0

Не получается отправить файл на сервер.
Точнее вот так:
curl_formadd(&post, &last,
CURLFORM_COPYNAME, "xxx1",
CURLFORM_FILENAME, "xxx2",
CURLFORM_FILE, "xxx3",
CURLFORM_END);

оно файл отправляет вот только мне нужно отправлять не из файла а из памяти, НО с указанием filename.

Игрался с CURLFORM_CONTENTTYPE, CURLFORM_FILECONTENT, CURLFORM_CONTENTHEADER, CURLFORM_COPYCONTENTS ничерта не выходит.

curl либо не добавляет filename либо добавляет но предлогает читать из файла. Переопределить Content-Disposition не смог но добавил второй Content-Disposition. Сервак на другой стороне такого не понимает.

Помогите переопределить Content-Disposition c целью добавить filename но отправлять данные из памяти.

anonymous

PS:
1) то что отправляет curl я смотрю через свою прокси.
2) простой POST не предлогать ! нужен именно curl_formadd()

anonymous
()

Вообщем копание в сырцах libcurl, и обновление до новой версии
решило проблему :)
Вместо использования CURLFORM_FILENAME нужно использовать CURLFORM_BUFFER кто бы мог подумать...

std::string xxx = "данные файла";
curl_formadd(&post, &last,
CURLFORM_COPYNAME, "dealerfile",
// CURLFORM_FILENAME, "filename",
CURLFORM_BUFFER, "filename",
CURLFORM_CONTENTTYPE, "text/plain",
CURLFORM_BUFFERPTR, xxx.c_str(),
CURLFORM_BUFFERLENGTH, xxx.size(),
CURLFORM_END);

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.