Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   как отправлять картинку с libcurl в c++ (https://forum.antichat.xyz/showthread.php?t=196542)

eldar85 15.04.2010 21:10

как отправлять картинку с libcurl в c++
 
сталкнулся с такой проблемой, курл только начал использовать и толком еще не разобрался) и сайт только на английском, а он у меня не очень то)))

так вот попробывал отправить так:

#include <QtCore/QCoreApplication>

#include <stdio.h>
#include <curl/curl.h>
#include <c++/iostream>

int main(int argc, char* argv[])
{
CURL* curl;
char url[] = "http://zalil.ru/upload/";
char proxy[] = "92.50.163.114";
long port = 8085;
char error[200];
struct curl_httppost* post = NULL;
struct curl_httppost* last = NULL;


curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture", CURLFORM_FILE, "1.jpg", CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
curl_easy_setopt(curl, CURLOPT_URL, url);
// curl_easy_setopt(curl, CURLOPT_PROXY, "120.29.240.58:8080");
//curl_easy_setopt(curl, CURLOPT_PROXYPORT, port);
//curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_HEADER, 1);
curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1");
// printf("\nTrying proxy [%s:%d]:\n", proxy, port);
curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
curl_easy_perform(curl);
// printf("Cannot perform\nError:%s\n", error);
int i;
std::cin >> i;

return 0;
}

но кажется я что то сделал не правельно. в консоли выводит страницу и файл нифига не отправлен... как быть?? :confused:

M_script_ 15.04.2010 21:23

Цитата:

curl_formadd(&post, &last, CURLFORM_COPYNAME, "picture", CURLFORM_FILE, "1.jpg", CURLFORM_CONTENTTYPE, "image/jpeg", CURLFORM_END);
Почему "picture"? На залил.ру "file" передается

eldar85 15.04.2010 21:26

спасибо, сейчас попробую))

eldar85 15.04.2010 21:33

все проверил, работает))) большое вам спасибо!!! работает)))

Ra$cal 15.04.2010 23:22

лол зачем тебе курл, если используешь Qt? там все проще и логичнее, благодаря единой архитектуре. и учить его достаточно просто.

Ins3t 15.04.2010 23:27

В дополнение к словам Ra$cal'a:
http://qt.nokia.com/doc/2.3/network.html
http://doc.crossplatform.ru/qt/4.3.2/qtnetwork.html
http://doc.crossplatform.ru/qt/en/4.6.x/qtnetwork.html

Версию сам выбирай.

eldar85 16.04.2010 16:26

спасибо всем)) но по советам на кросплатформе, говорят что веб кит кьютишный не обладает такой мощью как курл)) вот и пришлось курл втюхивать в кьюти)) тоже заморок было с этим прикручиванием библиотек, но вроде справился)

M_script_ 16.04.2010 17:54

Цитата:

Сообщение от eldar85
говорят что веб кит кьютишный не обладает такой мощью как курл))

Возможно, но ты же всю мощь курла не используешь.

eldar85 16.04.2010 22:44

))))но я собираюсь почти всю его мощь использовать, просто еще плохо с ним знаком)) поэтому такие легкие примеры пока стараюсь делать)) но вообще в планах использовать его на всю катушку)))
а так я веб китом только вывод HTML страници делаю чтобы читабельный вид был))) ну и если нужно чтобы как обычный браузер работала софтина тоже веб кит хорошая вещь)) а вот чтобы что нить зарегать или отправить или еще что нить посложнее тут уже без курла сложновато будет, на мой взгляд... хотя возможно я ошибаюсь, я далеко еще не профи)))

Ra$cal 16.04.2010 22:47

ошибаешься.

http://qtwiki.org/QHTTP_send_post_request

и иже с ними. для посылки запросов в кьюте не мало удобных штук.

http://qt.nokia.com/doc/4.6/qhttp.html

там и прокси задавать можно.


Время: 13:00