Q&A

  • [질문] 웹에 있는 자료를 가지고 오려 합니다..
예를들어 서버에 폴더를 하나 만들고 그 안에 문서 파일을 넣어 둡니다..

그리고 어플리케이션에서 이 폴더의 리스트를 가지고 와 보여준 다음

사용자가 선택을 하면 로컬에 다운 받을려고 합니다..

이를 위해서는 어떻게 방향을 잡고 프로그래밍을 해야 하는지요..?

Indy를 써야 하는지.. 또 Indy를 써야 한다면 어떤식으로 해야 하는지..

참고할 만한 소스나 아니면 조언 부탁드리겠습니다...

감사합니다..^^
2  COMMENTS
  • Profile
    구창민 2009.03.13 22:13
    안녕하세요...
    예전에 어떤분이 답변하신 내용인데, 아래 코드를 참고하세요..

    폼에다가 idhttp하고 progress, button를 하나씩 올리신다음에..

    // function downloadupdater를 만들어주시고...

    function TForm1.DownLoadUpdater(AUrl, Outputfilename : string): Boolean;
    var
    idHttp : TIdHTTP;
    dStream: TFileStream;
    begin
    Result := True;
    try
    dStream := TFileStream.Create(ExtractFilePath(Application.ExeName) + OutputFileName, fmCreate or fmShareExclusive);

    ProgressBar1.Position := 0;
    bytesRead := 0;
    idhttp1.Head(AUrl);
    ProgressBar1.max := idhttp1.response.ContentLength;
    idHTTP1.Get(AUrl, dStream);


    Application.ProcessMessages;
    dStream.Free;

    except
    Result := False;
    end;
    end;


    // idhttp의 이벤트 핸들로의 onwork에 작성해주세요.

    procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
    const AWorkCount: Integer);
    begin
    if (AWorkMode = wmRead) then
    begin
    bytesRead := bytesRead + AWorkCount;
    ProgressBar1.position := bytesRead;
    end;
    end;

    // 사용하실때에는...

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    DownLoadUpdater('http://xxxx.co.kr/delphi.exe','delphi.exe')
    end;
  • Profile
    바람의아빠 2009.03.14 01:13
    답변 감사드립니다..^^

    나중에 목록을 가져와서 다운 받을때 이소스를 이용하면 되겠군요..

    그런데 문제는 목록을 가져와야 하는데.. 아직도 이 부분에서 헤매고 있습니다..

    이와 관현하여 구현 방법이 어떻게 되는지 아시면 답변 부탁드리겠습니다..꾸벅^^