Я пытаюсь сделать запрос HTTP POST, я два текстовых входа и 3 файлы, которые будут загруженыCURL - Неизвестный вариант формы
Я не могу показаться, чтобы получить файлы для загрузки, когда я пытаюсь добавить в форму с помощью
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "brush", CURLFORM_FILE, brush_image, CURLFORM_END);
возвращаемое значение функции является CURL_FORMADD_UNKNOWN_OPTION
, я не могу понять, что я делаю не так, вот мой код
CURL *curl;
CURLcode res;
struct curl_httppost *formpost = NULL;
struct curl_httppost *lastptr = NULL;
static const char buf[] = "Expect:";
curl_global_init(CURL_GLOBAL_ALL);
curl_formadd(&formpost,&lastptr,CURLFORM_COPYNAME, "letter", CURLFORM_COPYCONTENTS, "Letter A",CURLFORM_END);
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "points", CURLFORM_COPYCONTENTS, "a b c", CURLFORM_END);
// these call return the unknown option
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "brush", CURLFORM_FILE, brush_image, CURLFORM_END);
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "lines", CURLFORM_FILE, lines_image, CURLFORM_END);
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "downsample", CURLFORM_FILE, downsample_image, CURLFORM_END);
curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "submit", CURLFORM_COPYCONTENTS, "send", CURLFORM_END);
curl = curl_easy_init();
if (curl) {
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
res = curl_easy_perform(curl);
if (res != CURLE_OK) {
// does not go here...
}
curl_easy_cleanup(curl);
curl_formfree(formpost);
Что 'brush_image' объявлен как, и где она инициализирована? Или, может быть, вы используете более старую версию завитка, которая не поддерживает 'CURLFORM_FILE'? –
Кроме того, вы теряете 'formpost', если' curl_easy_init() 'терпит неудачу. –
Тип brush_image является std :: string, он инициализирован ранее, он имеет значение, которое я проверил с помощью отладчика. – aviran