Download and Uploading FTP Files

FTP functionality in are supported by two classes:

Both classes use the same interface, and can be used interchangeably. The following example uses FTPS.

Downloading a File

DO wwFtpClient && Load Library

loFtp  = CREATEOBJECT("wwFtpClient")
loFtp.lUseTLS = .T.

loFtp.cServer = "someserver.com"  && domain or IP address (can also include a port)
loFtp.nPort = 23   && only needed with custom ports
loFtp.cUsername = "crankyFun221"
loFtp.cPassword = "superSeekrit#9"

IF !loFtp.Connect()
	? loFtp.cErrorMsg
	RETURN
ENDIF
? "Connected to " + lcServer	

IF !loFtp.DownloadFile("/Tools/jsMinifier.zip", "c:\temp\jsMinifier.zip")
	? loFtp.cErrorMsg
	RETURN
ENDIF	
? "Downloaded " + "Tools/jsMinifier.zip"

loFtp.Close()

Note: You can perform multiple FTP operations with an open connection between the Connect() and Close() calls.

How to specify FTP Paths

FTP paths tend to use Unix directory conventions so you use / slashes. We recommend you use absolute server pathing starting the / root path, but all paths also support relative paths based. Both of these are valid for the remote file:

  • /Tools/jsMinifier.zip (server root relative)
  • Tools/jsMinifier.zip (current (logon) path relative)

Uploading a File

To upload a file works virtually identically:

*** ... same setup as previous example

IF !loFtp.Connect()
	? loFtp.cErrorMsg
	RETURN
ENDIF
? "Connected to " + lcServer	

lcRemoteFile = "Tools/jsMinifier" + SYS(2015) + ".zip"
IF !loFtp.UploadFile("c:\temp\jsMinifier.zip", lcRemoteFile)
	? loFtp.cErrorMsg
	RETURN
ENDIF	
? "uploaded: " + lcRemoteFile

loFtp.Close()

Listing Files from a Remote Directory


© West Wind Technologies, 2024 • Updated: 05/26/24
Comment or report problem with topic