C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[24346] Re:버튼클릭시에 어느 특정한 홈페이지의 파일을 다운받을수 있게 하는 Button1Click소스?!?!
유영인.Chris [cuperido] 1373 읽음    2003-02-18 11:19
안녕하세요.
답변이 늦었지만, 차후 참고하시는 분이 계실까봐 리플을 답니다. --;

조금 막막하시겠지만 결론부터 말씀드리면 어떻게 짜느냐에 따라서 정말정말 달라집니다. --
FTP, HTTP 등 어떤 프로토콜을 사용하고, 어떤 방식으로 다운로드 받느냐에 따라서도 틀려지겠죠.

편리하게 사용할 수 있는것이 Indy 라는 Component인데, FTP, HTTP 등 여러가지 지원을 하고 있습니다. 아래는 HTTP로 구현을 했던 파일 다운로드 소스인데, 조금 다른 루틴과 섞여져도 있습니다.

파일 다운로드 _idSocket은 IdHTTP 입니다.


void __fastcall TAvatarDownload::Execute()
{

String            stAddress, stAvatar, stFileName;
TIdHTTP           *_idSocket = new TIdHTTP(NULL);
char              stHeader[3];


if(ADDRESS.Trim() != "" && AVATAR.Trim() != "") {
   stAddress  = ADDRESS + AVATAR;
   stAvatar   = AVATAR.Trim();
   stFileName = "C:\\Program Files\\Common Files\\JoyFunny\\" + AVATAR + ".bmp";

   std::auto_ptr<TMemoryStream> BUFFER(new TMemoryStream);
   BUFFER->Clear();

   try {
     _idSocket->ReadTimeout = 2000 + (MAX_THREAD * 200);
     _idSocket->Get(stAddress, &(*BUFFER));
     _idSocket->DisconnectSocket();

     BUFFER->Position = 0;
     BUFFER->Read(stHeader, 2);

     if(!strncmp(stHeader, "JF", 2)) {
       Decompress(&BUFFER);
       BUFFER->SaveToFile(stFileName);
      } else {
       BUFFER->SaveToFile(stFileName);
     }

     Avatar_Process(USER_INDEX);
    } catch(...) {
     _idSocket->DisconnectSocket();
   }

}


delete _idSocket;

Main->THREAD[THREAD_INDEX] = NULL;

}



질문자 님이 쓰신 글 :
: 버튼을 클릭하면 (예)http://211.221.211.612/1.WMV를 다운받을수 있도록 해주는 소스를 알고 계시
: 는 분 있나요?
:
: 아시는 분은 꼭 좀 소스와 답변을 부탁드립니다.
: 이만~
:

+ -

관련 글 리스트
24091 버튼클릭시에 어느 특정한 홈페이지의 파일을 다운받을수 있게 하는 Button1Click소스?!?! 질문자 612 2003/02/06
24346     Re:버튼클릭시에 어느 특정한 홈페이지의 파일을 다운받을수 있게 하는 Button1Click소스?!?! 유영인.Chris 1373 2003/02/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.