Visual FoxPro
Visual FoxPro
Upload to Tumbleweed SecureTransport FTPS Server
See more FTP Examples
Demonstrates how to connect, authenticate, and upload file to a Tumbleweed Secure Transport SSL FTP Server. Instead of providing a login name and password, you pass the string "site-auth" for the username, and an empty string for the password. You must also provide a client-side digital certificate -- as the certificate's credentials and validity are used to authenticate.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loFtp
LOCAL loCertStore
LOCAL lcPassword
LOCAL loJsonCN
LOCAL loCert
LOCAL lcLocalFilename
LOCAL lcRemoteFilename
lnSuccess = 0
* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.
loFtp = CreateObject('Chilkat.Ftp2')
* This code has been tested with the Tumbleweed server
* at sft.wellsfargo.com
loFtp.Hostname = "sft.wellsfargo.com"
* Use these exact strings for the username and password:
loFtp.Username = "site-auth"
loFtp.Password = ""
* Establish an AUTH SSL secure channel after connecting.
* Your client-side certificate is used for authentication when
* the SSL channel is established.
loFtp.AuthSsl = 1
* The Ssl property is for establishing an implicit SSL connection
* on port 990. Do not set it.
loFtp.Ssl = 0
* Load a certificate from a .pfx
* A PFX may contain several certs, including the certificates
* in a chain of authority.
loCertStore = CreateObject('Chilkat.CertStore')
lcPassword = "***"
* Load the certs from a PFX into an in-memory certificate store:
lnSuccess = loCertStore.LoadPfxFile("my.pfx",lcPassword)
IF (lnSuccess <> 1) THEN
? loCertStore.LastErrorText
RELEASE loFtp
RELEASE loCertStore
CANCEL
ENDIF
* Find the desired certificate.
loJsonCN = CreateObject('Chilkat.JsonObject')
loJsonCN.UpdateString("CN","cert common name")
loCert = CreateObject('Chilkat.Cert')
lnSuccess = loCertStore.FindCert(loJsonCN,loCert)
IF (lnSuccess = 0) THEN
? "Certificate not found!"
RELEASE loFtp
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert
CANCEL
ENDIF
* Tell the Chilkat FTP2 component to use the client-side
* cert for the SSL connection:
lnSuccess = loFtp.SetSslClientCert(loCert)
* Connect and authenticate with the FTP server.
lnSuccess = loFtp.Connect()
IF (lnSuccess <> 1) THEN
? loFtp.LastErrorText
RELEASE loFtp
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert
CANCEL
ELSE
* LastErrorText contains information even when
* successful. This allows you to visually verify
* that the secure connection actually occurred.
? loFtp.LastErrorText
ENDIF
? "Secure FTP Channel Established!"
* Change to the remote directory where the file will be
* uploaded. If your file is to be uploaded to the FTP user
* account's home directory, this is not necessary.
lnSuccess = loFtp.ChangeRemoteDir("someSubDir")
IF (lnSuccess <> 1) THEN
? loFtp.LastErrorText
RELEASE loFtp
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert
CANCEL
ENDIF
* You may include an absolute or relative path with the
* local filename. If no path is included, the file should
* be present in the current working directory of the calling
* process.
lcLocalFilename = "someFile.dat"
lcRemoteFilename = "someFile.dat"
* Upload the file.
lnSuccess = loFtp.PutFile(lcLocalFilename,lcRemoteFilename)
IF (lnSuccess <> 1) THEN
? loFtp.LastErrorText
RELEASE loFtp
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert
CANCEL
ENDIF
lnSuccess = loFtp.Disconnect()
RELEASE loFtp
RELEASE loCertStore
RELEASE loJsonCN
RELEASE loCert