www.ghoon.net
Home
Tag
MediaLog
LocationLog
Guestbook
Admin
Write
강지훈
카테고리
분류 전체보기
(15)
DesingPattern
(0)
Linux
(5)
DirectFB
(1)
dbus
(0)
cURL
(1)
Anytalk
(2)
태그목록
fb0
iGoogle
framebuffer
우분투글꼴
메소드포인터
가젯
공지사항
최근에 올라온 글
VIM에서 현재 Line, Column...
내 vimrc setting..
Alticast tru2way EPGs.
간단한 가변인자 샘플코드.
Eclipse에서 괄호 짝 찾아...
최근에 달린 댓글
좋은 정보 잘 봤어요. 구글에...
꾸로gguro
06/04
최근에 받은 트랙백
링크
fomuon's blog.
hoyeol's blog.
글 보관함
2010/06
(1)
2010/03
(1)
2009/05
(1)
2009/01
(1)
2008/12
(2)
Yesterday
5
Today
1
Total
3,768
가입하기
RSS FEED
달력
07
2010
이전
다음
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'Linux/cURL'에 해당되는 글 1건
2008/11/11
curl URL redirection example
curl URL redirection example
Linux/cURL
2008/11/11 10:27
/* * curl_redirection example * * @date 2008.11.10 * @author Kang, Ji-Hoon (kang@ghoon.net) */ #include
#include
#include
typedef struct FtpFile { char filename[FILENAME_MAX]; FILE* stream; } FtpFile; static size_t header_callback(void* ptr, size_t size, size_t nmemb, void* stream) { char* buff = (char*) ptr; const char* content_disposition = "Content-Disposition: attachment;" "filename="; if (strstr(buff, content_disposition)) { FtpFile* pFileInfo = (FtpFile*) stream; memset(pFileInfo->filename, 0, sizeof(pFileInfo->filename)); memcpy(pFileInfo->filename, buff+strlen(content_disposition), strlen(buff) - strlen(content_disposition) - 2); printf("catched filename : %s length : %d\n", pFileInfo->filename, strlen(pFileInfo->filename)); } return size * nmemb; } static size_t write_callback(void* buffer, size_t size, size_t nmemb, void* stream) { FtpFile* out = (FtpFile*) stream; if ((out && !out->stream) && out->filename) { out->stream = fopen(out->filename, "wb"); if (!out->stream) { return -1; } } return fwrite(buffer, size, nmemb, out->stream); } /** * @param [in] hCurl - curl handle * @param [in] sURL - * @param [in] sLocalDir - * @return 'CURLE_OK' ok, otherwise failure. */ static CURLcode download(CURL* hCurl, const char* sURL, const char* sLocalDir) { FtpFile localfile; memset(&localfile, 0, sizeof(FtpFile)); curl_easy_setopt(hCurl, CURLOPT_HEADERFUNCTION, header_callback); curl_easy_setopt(hCurl, CURLOPT_HEADERDATA, &localfile); curl_easy_setopt(hCurl, CURLOPT_URL, sURL); curl_easy_setopt(hCurl, CURLOPT_WRITEFUNCTION, write_callback); curl_easy_setopt(hCurl, CURLOPT_WRITEDATA, &localfile); curl_easy_setopt(hCurl, CURLOPT_VERBOSE, 1); CURLcode res = curl_easy_perform(hCurl); if (localfile.stream) { fclose(localfile.stream); } return res; } int main(int argc, char** argv) { const char* sURL = "http://fmov.pann.com/mmediaDownload.jsp?" "FileID=12992569"; const char* sLocalDir = "/home/david/Download"; CURL* hCurl = NULL; curl_global_init(CURL_GLOBAL_ALL); hCurl = curl_easy_init(); download(hCurl, sURL, sLocalDir); curl_easy_cleanup(hCurl); curl_global_cleanup(); return 0; }
Posted by
강지훈
트랙백
0
|
댓글
0
Trackback :
http://www.ghoon.net/trackback/10
이전
1
다음