Sample code for 30+ languages & platforms
Xbase++

FTP Upload / Download to a BinData Object

Demonstrates how to FTP upload the contents of a BinData object, and FTP downloads to the a BinData object.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oFtp
LOCAL oBdA
LOCAL cRemoteFilename
LOCAL oBdB

nSuccess := 0

//  This example assumes Chilkat Ftp2 to have been previously unlocked.
//  See Unlock Ftp2 for sample code.

oFtp := CreateObject("Chilkat.Ftp2")

oFtp:Hostname := "www.my-ftp-server.com"
oFtp:Username := "mFtpLogin"
oFtp:Password := "myFtpPassword"

//  Connect to the FTP server.
nSuccess := oFtp:ConnectOnly()
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    RETURN
ENDIF

//  Authenticate with the FTP server.
nSuccess := oFtp:LoginAfterConnectOnly()
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    RETURN
ENDIF

oBdA := CreateObject("Chilkat.BinData")
oBdA:LoadFile("qa_data/jpg/penguins.jpg")

//  Upload the contents of bdA to the FTP server.
cRemoteFilename := "penguins.jpg"
nSuccess := oFtp:PutFileBd(oBdA, cRemoteFilename)
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    oBdA:destroy()
    RETURN
ENDIF

//  Download...
oBdB := CreateObject("Chilkat.BinData")
nSuccess := oFtp:GetFileBd(cRemoteFilename, oBdB)
IF (nSuccess != 1)
    ? oFtp:LastErrorText
    oFtp:destroy()
    oBdA:destroy()
    oBdB:destroy()
    RETURN
ENDIF

//  Verify that bdA and bdB have the exact same contents.
? "size of bdA: " + Str(oBdA:NumBytes)
IF (oBdA:ContentsEqual(oBdB) == 1)
    ? "Contents are equal. Success."
ELSE
    ? "Contents are NOT equal.  Failed."
ENDIF

oFtp:Disconnect()

oFtp:destroy()
oBdA:destroy()
oBdB:destroy()