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
[29071] Re:HTTP 를 통하여 파일 받기
수야!╋ [sooya23] 1315 읽음    2004-03-17 15:49
자답 오랜만에 들어가네요.. ㅡ0ㅡ;

qDecoder 를 찾아보니 더 어렵고..

API 책을 보니간단히 구현이 되네요..

한가지 아쉬운건 받을 파일의 전체 싸이즈를 받는 방법을 아직 모른다는겁니다..

받는 방법을 안다면 전체 크기에대한 수신상황을 표시 할 수 있을텐데

아쉬움이 남는군요

함수를 안찾아본건 아니지만.. 워낙 얄딱꾸리해서

아래는 소스입니다.

HTTP를 사용하기 위해선 wininet.h를 include 해야하며

wininet.lib를 사용하여야 합니다.

해당 파일이 어디에 위치하는지는 뭐 찾아보면 나오겠죵 ㅡ0ㅡ;

결국 wininet.dll을 사용한다고 들었습니다.

그럼.. 이만..

#include <wininet.h>
#pragma comment(lib, "WININET.lib")

bool __fastcall HttpDwonLoad(char *URL, char *Path)
{
  HINTERNET hInternet, hURL;
  HANDLE hFile;
  DWORD Size;
  DWORD dwRead, dwWritten, Recv = 0;
  char buf[100000];
  MSG Message;

  // 연결
  hInternet = InternetOpen("HTTPTEST", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);

  if(hInternet == NULL)
    return false;

  // URL을 연다
  hURL = InternetOpenUrl(hInternet, URL, NULL, 0, INTERNET_FLAG_RELOAD, 0);

  if(hURL == NULL)
  {
    InternetCloseHandle(hInternet);
    return false;
  }

  // 로컬 파일 생성
  hFile = CreateFile(Path, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

  do
  {
    // 파일을 받아 로컬 파일에 저장
    InternetQueryDataAvailable(hURL, &Size, 0, 0);
    InternetReadFile(hURL, buf, Size, &dwRead);
    WriteFile(hFile, buf, dwRead, &dwWritten, NULL);

    // 다운 로드 받은 양을 메시지로 전달
    Recv += dwWritten;
  }
  while(dwRead != 0);

  InternetCloseHandle(hURL);
  InternetCloseHandle(hInternet);
  CloseHandle(hFile);

  return true;
}
수야!╋ 님이 쓰신 글 :
: ㅇ_ㅎ;
:
: http를 통하여 파일을 받아야 하는데요
:
: 무거운 컴포넌트를 올리지 않고 받는 방법을 알고싶습니다.
:
: 자세히 몰라서 이렇게뿐이 물어보질 못하는데요..
:
: 부디 막막한 질문이 아니길 바라면서...
:
: 수고하세요~~ ^^

+ -

관련 글 리스트
29057 HTTP 를 통하여 파일 받기 수야!╋ 870 2004/03/16
34623     Re:HTTP 를 통하여 파일 받기 오전&오후 1020 2004/03/16
29071     Re:HTTP 를 통하여 파일 받기 수야!╋ 1315 2004/03/17
29072         Re:Re:HTTP 를 통하여 파일 받기 르르르르 1277 2004/03/17
34622             Re:Re:Re:HTTP 를 통하여 파일 받기 수야!╋ 1015 2004/03/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.