Sample code for 30+ languages & platforms
Visual FoxPro

SFTP Upload and Download to a BinData Object

See more SFTP Examples

Demonstrates how to SFTP upload from a BinData object, and download into a BinData object.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loSftp
LOCAL lnPort
LOCAL loBdA
LOCAL lcRemotePath
LOCAL loBdB

lnSuccess = 0

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loSftp = CreateObject('Chilkat.SFtp')

* Set some timeouts, in milliseconds:
loSftp.ConnectTimeoutMs = 5000
loSftp.IdleTimeoutMs = 10000

* Connect to the SSH server and then authenticate.
lnPort = 22
lnSuccess = loSftp.Connect("MY-SSH-SERVER-DOMAIN-OR-IP",lnPort)
IF (lnSuccess = 1) THEN
    lnSuccess = loSftp.AuthenticatePw("MY-SSH-LOGIN","MY-SSH-PASSWORD")
    IF (lnSuccess = 1) THEN
        lnSuccess = loSftp.InitializeSftp()
    ENDIF

ENDIF

IF (lnSuccess <> 1) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    CANCEL
ENDIF

loBdA = CreateObject('Chilkat.BinData')
loBdA.LoadFile("qa_data/jpg/penguins.jpg")

* Upload the contents of bdA to the SSH/SFTP server.
lcRemotePath = "sftpTesting/penguins.jpg"
lnSuccess = loSftp.UploadBd(loBdA,lcRemotePath)
IF (lnSuccess <> 1) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    RELEASE loBdA
    CANCEL
ENDIF

* Download the file..
loBdB = CreateObject('Chilkat.BinData')
lnSuccess = loSftp.DownloadBd(lcRemotePath,loBdB)
IF (lnSuccess <> 1) THEN
    ? loSftp.LastErrorText
    RELEASE loSftp
    RELEASE loBdA
    RELEASE loBdB
    CANCEL
ENDIF

* Verify that bdA and bdB have the exact same contents.
? "size of bdA: " + STR(loBdA.NumBytes)
IF (loBdA.ContentsEqual(loBdB) = 1) THEN
    ? "Contents are equal. Success."
ELSE
    ? "Contents are NOT equal.  Failed."
ENDIF

loSftp.Disconnect()

RELEASE loSftp
RELEASE loBdA
RELEASE loBdB