이것은 문서의 이전 버전입니다!


명령어 설명

DrFTP는 인터넷의 FTP를 이용해 파일을 보내고 받는데 사용되는 콤포넌트입니다.

FTP는 Socket통신을 기반으로 하는 규약입니다. NextWin에서의 Socket통신은 Window의 Event 관리자를 통해서 이루어지기 때문에 항상 하나 이상의 Window가 있어야 동작됩니다. 만약 윈도우가 만들어지지 않은 상태에서 Socket을 시작하면 아래와 같은 Error가 보여집니다.

  ”You must create a main window in order to use a TSocket object”

이런 문구가 나올 때는 꼭 윈도우의 생성여부를 점검바랍니다.

 

FTP로부터 파일 송수신은 FTP설정 → 접속여부 확인 → 내려받기/올리기 순으로 이루어집니다.

 

1. FTP설정

  oFtp := Dr_Ftp( “youraddress.co.kr”, “id”, “passwd” )

  접속주소, ID, Password를 설정합니다 .

 

2. 접속여부확인

  oFtp:Connect()

  접속여부를 점검합니다 접속이 되었을 때는 .T.를 안되었을 때는 .F.를 보내줍니다.

  연결에 문제가 없는데도 접속불가일 될 때는 Internet 접속주소, ID, Password를 점검바랍니다.

 

3. 파일 올리기/내려받기

  oFtp:UPLoad( “kk.gif”, “aa.gif” ) “kk.gif”파일을 “aa.gif”파일로 이름을 바꾸어 올림

  oFtp:DownLoad( “aa.gif”, “bb.gif” ) “aa.gif”파일을 “bb.gif”파일로 이름을 바꾸어 받음

 

4. 인터넷 서버 경로 변경

  만약 test/test.gif를 가져오려면

  oFtp:Cd(“test”) 폴더명의 대소문자 구분   oFtp:DownLoad( “test.gif”, “test.gif” )   5. 파일삭제   만약 test/test.gif를 삭제하려면   oFtp:Cd(“test”) 폴더명의 대소문자 구분

  oFtp:Del( “test.gif” )

NSAMPLES\DRFTP\UPFTP.PRG 참조

#include "npp.ch"

FUNCTION Main()

   LOCAL oFtp
   LOCAL oWnd

   DEFINE WINDOW oWnd TITLE "FTP 연습" ;
          FROM 15,20 TO 20, 60         ;
          COLOR CLR_BLACK,CLR_CYAN

   ACTIVATE WINDOW oWnd ON INIT FtpUpload()
   // Socket통신을 하기위해 Window를 먼저 만듭니다.
   // 윈도우의 시작과 함께 FTP로 Up합니다.

RETURN NIL

FUNCTION FtpUpload()

   LOCAL oFtp   := TDrFtp():New( "youraddress.co.kr", "id", "passwd" )
   LOCAL nFSize := 0
   LOCAL oMeter

   IF !oFtp:Connect()    // 접속여부 판단
       oFtp:End()
       MsgStop( "접속에 실패했습니다.")
       RETURN NIL
   ENDIF

   oFtp:cd("temp") // 폴더변경, 대소문자 구분

   oMeter := TDrMeta():New( "Wait", "Uploading...", 100000000, 1 )
   // 전송상태를 표시하기 위한 Meter를 만듭니다.
   // 하지만 파일의 전체 사이즈를 현재까지는 모르는 관계로 100000000로
   // 전체크기를 지정합니다.
   oFtp:bUpload := {| nTotalsize, nNowSize | ShowUpload( nTotalSize, nNowSize, oMeter ) }
   // 전송상태를 전달받을 함수를 지정합니다.
   // 해당 함수를 지정해주면 전체크기와 현재까지 업로드한 양이 전달됩니다.

   IF oFtp:Upload ( "ftptest.txt", "ftptest.txt" ) == -1
      oMeter:End()
      MsgStop( "전송에 실패했습니다.")
      RETURN NIL
   ENDIF
   // "ftptest.txt"파일을 인터넷 서버에 "ftptest.txt"란 이름으로 올립니다.

   oFtp:End()

   IF oMeter <> NIL
      oMeter:End()
   ENDIF

RETURN NIL


FUNCTION ShowUpload ( nTotalSize, nNowSize, oMeter )

   oMeter:SetTotal ( nTotalSize )
   oMeter:SetData  ( nNowSize )

RETURN NIL

NSAMPLES\DRFTP\DOWNFTP.PRG 참조

#include "npp.ch"

FUNCTION Main()

   LOCAL oFtp
   LOCAL oWnd

   DEFINE WINDOW oWnd TITLE "ftp TEST" ;
          FROM 15,20 TO 20, 60         ;
          COLOR CLR_BLACK,CLR_CYAN

   ACTIVATE WINDOW oWnd ON INIT FtpDownLoad()

RETURN NIL


FUNCTION FtpDownLoad()

   LOCAL oFtp   := TDrFtp():New( "youraddress.co.kr", "id", "passwd" )
   LOCAL nFSize := 0
   LOCAL oMeter

   IF !oFtp:Connect()
       oFtp:End()
       MsgStop( "접속에 실패했습니다.")
       RETURN NIL
   ENDIF

   oFtp:cd("temp")

   oMeter := TDrMeta():New( "Wait", "DownLoading", 100000000, 1, , , , ,2 )

   oFtp:bDownLoad := {| nTotalsize, nNowSize | ShowDownload( nTotalSize, nNowSize, oMeter ) }

   IF oFtp:DownLoad ( "ftptest.txt", "ftpdown.txt" ) == -1
      oMeter:End()
      MsgStop( "다운 받기에 실패했습니다.")
      RETURN NIL
   ENDIF

   oFtp:End()

   IF oMeter <> NIL
      oMeter:End()
   ENDIF

RETURN NIL


FUNCTION ShowDownload ( nTotalSize, nNowSize, oMeter )

   oMeter:SetTotal ( nTotalSize )
   oMeter:SetData  ( nNowSize )

RETURN NIL
 

Link categories 1

Link categories 2