Как загрузить файл POST в libcurl? - PullRequest
2 голосов
/ 02 октября 2009

как загрузить файл POST в libcurl? (C ++)

Ответы [ 2 ]

4 голосов
/ 10 октября 2009

Имеете ли вы в виду RFC 1867 (то есть, что отправляет браузер, когда пользователь отправляет HTML-форму, содержащую поле ввода с типом = "file")?

Если это так, вас может заинтересовать http://curl.haxx.se/libcurl/c/postit2.html

0 голосов
/ 02 октября 2009

Из документации здесь :

При использовании «легкого» интерфейса libcurl вы инициируете сеанс и получаете дескриптор (часто называемый «легким дескриптором»), который вы используете в качестве входных данных для используемых вами функций простого интерфейса. Используйте curl_easy_init, чтобы получить ручку.

Вы продолжаете, устанавливая все параметры, которые вы хотите в предстоящем переносе, наиболее важным из них является сам URL (вы не можете передавать что-либо без указанного URL, как вы, возможно, выяснили сами). Вы также можете установить некоторые обратные вызовы, которые будут вызываться из библиотеки при наличии данных и т. Д. Для всего этого используется curl_easy_setopt.

Когда все настроено, вы указываете libcurl выполнить передачу, используя curl_easy_perform. Затем он выполнит всю операцию и не вернется, пока не будет выполнено (успешно или нет).

После того, как передача была сделана, вы можете установить новые параметры и сделать другую передачу, или, если вы сделали, очистите сеанс, вызвав curl_easy_cleanup. Если вам нужны постоянные соединения, вы не выполняете очистку немедленно, а вместо этого запускаете ее и выполняете другие передачи, используя ту же простую ручку.

Похоже, вам нужно позвонить по следующему номеру:

  1. curl_easy_init (инициализация сеанса скручивания)
  2. curl_easy_setopt (настройка параметров сеанса)
  3. curl_easy_perform (выполнить завиток)
  4. curl_easy_cleanup (удалить сеанс)

Учитывая, что это API-интерфейсы C, у вас не должно возникнуть проблем с их вызовом в исходном файле C ++.

...