Sample code for 30+ languages & platforms
DataFlex

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoFtp
    Variant vBdA
    Handle hoBdA
    String sRemoteFilename
    Variant vBdB
    Handle hoBdB
    String sTemp1
    Integer iTemp1
    Boolean bTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatFtp2)) To hoFtp
    If (Not(IsComObjectCreated(hoFtp))) Begin
        Send CreateComObject of hoFtp
    End

    Set ComHostname Of hoFtp To "www.my-ftp-server.com"
    Set ComUsername Of hoFtp To "mFtpLogin"
    Set ComPassword Of hoFtp To "myFtpPassword"

    // Connect to the FTP server.
    Get ComConnectOnly Of hoFtp To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoFtp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Authenticate with the FTP server.
    Get ComLoginAfterConnectOnly Of hoFtp To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoFtp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatBinData)) To hoBdA
    If (Not(IsComObjectCreated(hoBdA))) Begin
        Send CreateComObject of hoBdA
    End
    Get ComLoadFile Of hoBdA "qa_data/jpg/penguins.jpg" To iSuccess

    // Upload the contents of bdA to the FTP server.
    Move "penguins.jpg" To sRemoteFilename
    Get pvComObject of hoBdA to vBdA
    Get ComPutFileBd Of hoFtp vBdA sRemoteFilename To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoFtp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Download...
    Get Create (RefClass(cComChilkatBinData)) To hoBdB
    If (Not(IsComObjectCreated(hoBdB))) Begin
        Send CreateComObject of hoBdB
    End
    Get pvComObject of hoBdB to vBdB
    Get ComGetFileBd Of hoFtp sRemoteFilename vBdB To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoFtp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Verify that bdA and bdB have the exact same contents.
    Get ComNumBytes Of hoBdA To iTemp1
    Showln "size of bdA: " iTemp1
    Get ComContentsEqual Of hoBdA     Get pvComObject of hoBdB to vBdB
vBdB To bTemp1
    If (bTemp1 = True) Begin
        Showln "Contents are equal. Success."
    End
    Else Begin
        Showln "Contents are NOT equal.  Failed."
    End

    Get ComDisconnect Of hoFtp To iSuccess


End_Procedure