Q&A

  • Tnmftp를 사용해 디렉토리,파일 업로드시...
안녕하세요~!^^

델파이 Tnmftp component를 이용해 웹상에 자료를 올리려구 하는데요!

디렉토리 만들구 그 안에 파일 업로드 하는 식으로여!

디렉토리 생성이나 파일 업로드는 Tnmftp에 있는

MakeDirectory, UploadAppend프로시져 사용해서 돼거든여!



그런데 웹상에 기존에 만들어둔 디렉토리가 있는지 없는지 알수 있는

프로시져나 프로퍼티...가튼게 help파일에는 없는것 같아서여(못 찾았나^^?)



궁여지책으로 event에 있는 OnFailure, OnSuccess 이용해 봤는데여

OnFailure는  NMFTP1.ChangeDir(...)에서 ...부분의 이름을 가진 디렉토리가

웹상에 없다는 에러메세지가 뜨고나서 확인 누루고 나서 ...디렉토리가 만들어

지구여 OnSuccess는 디렉토리가 carPicture2002072955 이런식으로 만들

어 지기는 하는데요. 나중에 수정됀 자료를 업로드 하려면 디렉토리를 다시 만

들더라구여...ㅠ.ㅜ...이상태서 진전이 없네영....이공



긴글 읽어 주시느라 수고하셨구여

요약하자면

1> 웹상에 디렉토리가 있는지 없는지 알아볼 수 있는 프로시져나 프로퍼티가 있는지 궁금하구여

2> 없다면 OnFailure이벤트에서 에러가 안나게하는 방법.

3> 기타 다른 방법으로(예-다른 프로시져나 함수 사용) 해결할 수 있는 법을
알수 있을까 해서 질문 드립니다...^^...

고수님들의 빠른 답변 부탁드릴께여!!!!

참고로 아래에 테스트 하던 소스두 좀 봐주세여!!!


.
.
.
var
  Form1: TForm1;
  strChDir : string;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
    if NMFTP1.Connected then
            NMFTP1.Disconnect
    else begin
           { NMFTP1.Vendor := NMOS_AUTO;
            NMFTP1.Host := strFtpAdd;
            NMFTP1.UserID := strFtpID;
            NMFTP1.Password := strFtpPW;}
            NMFTP1.Connect;
    end;
    //ftp Host상에 CarPicture라는 디렉토리 생성
    strChDir := 'CarPicture';
    NMFTP1.ChangeDir(strChDir);

    //strChDir := '날짜';
    NMFTP1.ChangeDir(strChDir);

    //strChDir := '조';
    NMFTP1.ChangeDir(strChDir);


end;

procedure TForm1.NMFTP1Failure(var Handled: Boolean; Trans_Type: TCmdType);
begin
       case Trans_Type of
           cmdChangeDir:
           begin
                NMFTP1.MakeDirectory(strChDir);
                NMFTP1.ChangeDir(strChDir);
           end;
       end;
end;

procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);
begin
    case Trans_Type of
           cmdChangeDir:
           begin
                if strChDir = 'CarPicture' then begin
                    strChDir := '20020729';
                    NMFTP1.MakeDirectory(strChDir);
                end
                else begin
                strChDir := '55';
                NMFTP1.MakeDirectory(strChDir);
                end
           end;
    end;
end;

end.
0  COMMENTS