Q&A

  • indy ftp download시 문서 파일이 안열리는 이유 ?
안녕하세요~

인디 FTP 사용중 download시 에러가 있는것 같아 여쭙고자
적습니다.
-----< 증상 >-----
FTP로 화일은 정상적으로 올라갑니다.

헌데 문서파일(아래한글,훈민정음,엑셀, 워드 등)은 안되는군요.

실행 파일도 도스의 세카만 화면만 나오고 없어져 버리는 군요.

WS-FTP로 바이러리로 다운을 하면 실행이 되므로

UPLOAD는 잘 됐다고 할 수 있겠죠 ?

텍스트 문서와 압축 파일은 잘 열립니다.

이녀석을 어딜 손봐야 할까요 ?
-----< 환경 >------
DEL 5.0 ent.
indy 9.0
WINDOWS 20000pro
ORACLE 7
-----< 소스 >------
  if not IdFTP1.Connected then
    Application.MessageBox('연결이 해제되었습니다. 다시선택하세요','오류',Mb_Ok+Mb_IconHand)
  else try

    ProSetBtn(False);
// 버튼 비활성화

    sSourceName := fieldByName('fsave_link_name').AsString;
// DB에서 서버에 실제 저장된 파일 명 자료를 읽어옴.

    if bOpenMode then begin
// 바로 실행 할 건지 저장 할 지를 구분
      GetEnvironmentVariable('Temp', aBuffer, Sizeof(aBuffer));
      sTargetName := StrPas(aBuffer);
// 바로 저장시 시스템 templory 디렉토리를 찾음.
      sTargetName := sTargetName + ''+fieldByName('fsave_name').AsString;
// 디렉토리 + 실제 파일명
      end
    else begin
      SaveDialog1.FileName := fieldByName('fsave_name').AsString;
// save dialog 에 서버에 저장된 파일의 원래이름을 뿌려줌.
      if SaveDialog1.Execute then
        sTargetName := SaveDialog1.FileName;
// 저장될 파일명을 지정
      end;

    EdtFileName.Text := sTargetName;
// 저장될 파일을 화면에 뿌려줌.

    if UpperCase(FieldByName('fsave_ext').AsString)= '.TXT' then
      IdFTP1.TransferType := ftASCII
    else  IdFTP1.TransferType := ftBinary;
// 확장자가 TXT이면 ascii 모드로 그 이외는 Binary 로 전송모드 선택

    ChageDir(fieldByName('fsave_link_dir').AsString+'/');
// ftp 서버의 파일 저장 위치를 DB에서 읽어와 서버 디렉토리 변경
    BytesToTransfer := IdFTP1.Size(sSourceName);

//    IdFTP1.Get(sSourceName, SaveDialog1.FileName., true);
//★★★★★★★★★★★★★★★★★★★★★★★★★★★
    IdFTP1.Get(sSourceName, sTargetName, true);
// 이부분인데요 ... 소스를 타겟으로 있어도 덮어쓴다(true) 는 부분인데
// 잘못된게 있나요 ?
//★★★★★★★★★★★★★★★★★★★★★★★★★★★
    if bOpenMode then
      funWinRun(sTargetName);
// winexecute API 호출  프로시져
    Finally
      ProSetBtn(true);
// 버튼 활성화
    end;
1  COMMENTS
  • Profile
    구관중 2002.04.26 18:55
    이런 이런 또 허무하게 보낸 하루가
    잘못된 한줄탓이었네요.
    zip 파일은 ascii 코드도 읽어지는군요.
    이걸 알았더라면 전송모드시 에러란걸 금방 알았을텐데
    zip은 열리고 일반 바이너리 파일은 안열려 엉뚱한 오해(?) 들을 했습니다.

    chageDir() 에 ascii 변환 항목이 있어 코 전송모드 선택전에 디렉토리
    change를 해주면 되네요.

    읽어주신 분들 감사 감사....즐코 즐프하세용~

    수정 부분은 재기입했습니다. 아래 참조하세요.