ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию как скачать картинку в файл с помощью libcurl?

не могу понять в как в курле скачивать картинку с сайта какого либо в файл, чтобы можно было к примеру на диск С скачать картинку...
можете помочь?) очень нужно...
 
Ответить с цитированием

  #2  
Старый 23.04.2010, 22:04
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме:
1819761

Репутация: 180
Отправить сообщение для M_script_ с помощью ICQ
По умолчанию

так
PHP код:
//---------------------------------------------------------------------------
struct CapFile
{
    const 
char *filename;
    
FILE *stream;
};
//---------------------------------------------------------------------------
static size_t CapWrite(void *buffersize_t sizesize_t nmembvoid *stream)
{
    
struct CapFile *out=(struct CapFile *)stream;
    if(
out && !out->stream)
    {
        
out->stream=fopen(out->filename"wb");
        if(!
out->stream)
            return -
1;
    }
    return 
fwrite(buffersizenmembout->stream);
}
//--------------------------------------------------------------------------- 
и так
PHP код:
struct CapFile     cap_file = {sFileName.c_str(), NULL};

curl_easy_setopt(curlCURLOPT_WRITEFUNCTIONCapWrite);
curl_easy_setopt(curlCURLOPT_WRITEDATA, &cap_file);
curl_easy_setopt(curlCURLOPT_URLsUrl.c_str());
curl_easy_perform(curl); 
 
Ответить с цитированием

  #3  
Старый 23.04.2010, 22:08
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

ого как быстро ответили)) большое вам спасибо)))
 
Ответить с цитированием

  #4  
Старый 25.04.2010, 20:35
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

блин, чет я кажется не то наделал, подскажите пожалуйста где накосячил то??
Цитата:
#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..
 
Ответить с цитированием

  #5  
Старый 25.04.2010, 21:22
M_script_
Постоянный
Регистрация: 29.10.2008
Сообщений: 306
Провел на форуме:
1819761

Репутация: 180
Отправить сообщение для M_script_ с помощью ICQ
По умолчанию

Цитата:
Сообщение от eldar85  
блин, чет я кажется не то наделал, подскажите пожалуйста где накосячил то??
sFileName - имя файла
 
Ответить с цитированием

  #6  
Старый 25.04.2010, 21:43
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

тоесть как будет называться сама картинка после скачиваания?))
 
Ответить с цитированием

  #7  
Старый 25.04.2010, 21:48
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

а что значит "wb" ???)
 
Ответить с цитированием

  #8  
Старый 25.04.2010, 23:00
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

http://www.cplusplus.com/reference/clibrary/cstdio/fopen/
 
Ответить с цитированием

  #9  
Старый 25.04.2010, 23:18
eldar85
Познающий
Регистрация: 27.08.2009
Сообщений: 82
Провел на форуме:
131097

Репутация: 5
Отправить сообщение для eldar85 с помощью ICQ
По умолчанию

спасибо...)
вот сделал так, по идее должен же скачать файл и поместить возле экзэшника, но ничего нету...

Цитата:
#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;


}
 
Ответить с цитированием

  #10  
Старый 25.04.2010, 23:23
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

не "сапсибо" говорить надо, а "я больше не буду задавать глупые вопросы не погуглив их"
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
МикроДжоинер для начинающих ReanimatoR Статьи 23 02.01.2010 15:07
Как уничтожить вирус Penetrator? Aikaram Статьи 0 14.06.2009 11:18
Как можно копировать файл с помощью сплоита ? Zipper-rus Форумы 7 16.04.2009 22:45
Мой ржачный разговор в аське с кем-то вроде как с античата, как я подумал Дрэгги Болталка 21 22.07.2007 12:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ