POST-буфер в файл с использованием libcurl в C++C++

Программы на C++. Форум разработчиков
Anonymous
POST-буфер в файл с использованием libcurl в C++

Сообщение Anonymous »

upload.php: Я загружаю файл на сервер следующим образом:

Код: Выделить всё

$ curl http://127.0.0.1/upload.php -F "fileToUpload=@/home/user/file.txt"
Я хочу загрузить приведенный ниже буфер в файл на сервере. Я делаю это через FTP, но в данном случае я хочу иметь возможность использовать SSL:

Код: Выделить всё

char *data = "this is the data to upload";
Мой код в программе на C++ приведен ниже. Я не уверен, как правильно структурировать POSTFIELDS. Я вижу другие темы по POST, например, использующие этот код:

Код: Выделить всё

curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
Но, похоже, они не используют какие-либо конкретные поля или даже PHP-скрипт.
Есть ли способ сделать это без PHP?
Вот что я использую:

Код: Выделить всё

curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1/upload.php");
/* Now specify the POST data */
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "fileToUpload=file.txt", data);
ОБНОВЛЕНИЕ:
Я добавил следующее, но не смог загрузить буфер в файл

Код: Выделить всё

  struct curl_slist *list = NULL;
list = curl_slist_append(list, "multipart/form-data");
// Then you pass that post to libcurl like this:
curl_mime *form = curl_mime_init(curl);

/* Fill in the file upload field */
curl_mimepart *part = curl_mime_addpart(form);
curl_mime_name(part, "fileToUpload");
curl_mime_data(part, "file.txt", CURL_ZERO_TERMINATED);
curl_mime_data(part, (char *)data, sizeof(data));
// curl_mime_filedata(part, "photo.jpg");

curl_easy_setopt(curl, CURLOPT_HTTPHEADER, list);
curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);
Я могу загрузить файл, раскомментировав его, и отправить photo.jpg, но это не входит в мои намерения.

Подробнее здесь: https://stackoverflow.com/questions/787 ... bcurl-in-c

Вернуться в «C++»