Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
как скачать картинку в файл с помощью libcurl? |

23.04.2010, 22:00
|
|
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме: 131097
Репутация:
5
|
|
как скачать картинку в файл с помощью libcurl?
не могу понять в как в курле скачивать картинку с сайта какого либо в файл, чтобы можно было к примеру на диск С скачать картинку...
можете помочь?) очень нужно...
|
|
|

23.04.2010, 22:04
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
так
PHP код:
//---------------------------------------------------------------------------
struct CapFile
{
const char *filename;
FILE *stream;
};
//---------------------------------------------------------------------------
static size_t CapWrite(void *buffer, size_t size, size_t nmemb, void *stream)
{
struct CapFile *out=(struct CapFile *)stream;
if(out && !out->stream)
{
out->stream=fopen(out->filename, "wb");
if(!out->stream)
return -1;
}
return fwrite(buffer, size, nmemb, out->stream);
}
//---------------------------------------------------------------------------
и так
PHP код:
struct CapFile cap_file = {sFileName.c_str(), NULL};
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CapWrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &cap_file);
curl_easy_setopt(curl, CURLOPT_URL, sUrl.c_str());
curl_easy_perform(curl);
|
|
|

23.04.2010, 22:08
|
|
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме: 131097
Репутация:
5
|
|
ого как быстро ответили)) большое вам спасибо)))
|
|
|

25.04.2010, 20:35
|
|
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме: 131097
Репутация:
5
|
|
блин, чет я кажется не то наделал, подскажите пожалуйста где накосячил то??
#include <curl/curl.h>
#include <QApplication>
#include <stdio.h>
#include <c++/iostream>
#include <c++/string>
struct CapFile
{
const char *filename;
FILE *stream;
};
//---------------------------------------------------------------------------
static size_t CapWrite(void *buffer, size_t size, size_t nmemb, void *stream)
{
struct CapFile *out=(struct CapFile *)stream;
if(out && !out->stream)
{
out->stream=fopen(out->filename, "wb");
if(!out->stream)
return -1;
}
return fwrite(buffer, size, nmemb, out->stream);
}
int main(int argc, char* argv[])
{
CURL* curl;
curl = curl_easy_init();
string sUrl = "http://www.missfit.ru/i/4215472799.jpg";
string sFileName = "c:/zove/";
struct CapFile cap_file = {sFileName.c_str(), NULL};
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CapWrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &cap_file);
curl_easy_setopt(curl, CURLOPT_URL, sUrl.c_str());
curl_easy_perform(curl);
int i;
std::cin >> i;
return 0;
}
Последний раз редактировалось eldar85; 25.04.2010 в 20:45..
|
|
|

25.04.2010, 21:22
|
|
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме: 1819761
Репутация:
180
|
|
Сообщение от eldar85
блин, чет я кажется не то наделал, подскажите пожалуйста где накосячил то??
sFileName - имя файла
|
|
|

25.04.2010, 21:43
|
|
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме: 131097
Репутация:
5
|
|
тоесть как будет называться сама картинка после скачиваания?))
|
|
|

25.04.2010, 21:48
|
|
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме: 131097
Репутация:
5
|
|
а что значит "wb" ???)
|
|
|

25.04.2010, 23:00
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
http://www.cplusplus.com/reference/clibrary/cstdio/fopen/
|
|
|

25.04.2010, 23:18
|
|
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме: 131097
Репутация:
5
|
|
спасибо...)
вот сделал так, по идее должен же скачать файл и поместить возле экзэшника, но ничего нету...
#include <curl/curl.h>
#include <QApplication>
#include <stdio.h>
#include <c++/iostream>
#include <c++/string>
struct CapFile
{
const char *filename;
FILE *stream;
};
//---------------------------------------------------------------------------
static size_t CapWrite(void *buffer, size_t size, size_t nmemb, void *stream)
{
struct CapFile *out=(struct CapFile *)stream;
if(out && !out->stream)
{
out->stream=fopen(out->filename, "wb");
if(!out->stream)
return -1;
}
return fwrite(buffer, size, nmemb, out->stream);
}
int main(int argc, char* argv[])
{
CURL* curl;
curl = curl_easy_init();
string sUrl = "http://www.missfit.ru/i/4215472799.jpg";
string sFileName = "my.jpg";
struct CapFile cap_file = {sFileName.c_str(), NULL};
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CapWrite);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &cap_file);
curl_easy_setopt(curl, CURLOPT_URL, sUrl.c_str());
curl_easy_perform(curl);
int i;
std::cin >> i;
return 0;
}
|
|
|

25.04.2010, 23:23
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
не "сапсибо" говорить надо, а "я больше не буду задавать глупые вопросы не погуглив их"
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|