Sample code for 30+ languages & platforms
DataFlex

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

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSftp
    Integer iPort
    Variant vBdA
    Handle hoBdA
    String sRemotePath
    Variant vBdB
    Handle hoBdB
    String sTemp1
    Integer iTemp1
    Boolean bTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatSFtp)) To hoSftp
    If (Not(IsComObjectCreated(hoSftp))) Begin
        Send CreateComObject of hoSftp
    End

    // Set some timeouts, in milliseconds:
    Set ComConnectTimeoutMs Of hoSftp To 5000
    Set ComIdleTimeoutMs Of hoSftp To 10000

    // Connect to the SSH server and then authenticate.
    Move 22 To iPort
    Get ComConnect Of hoSftp "MY-SSH-SERVER-DOMAIN-OR-IP" iPort To iSuccess
    If (iSuccess = True) Begin
        Get ComAuthenticatePw Of hoSftp "MY-SSH-LOGIN" "MY-SSH-PASSWORD" To iSuccess
        If (iSuccess = True) Begin
            Get ComInitializeSftp Of hoSftp To iSuccess
        End

    End

    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp 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 SSH/SFTP server.
    Move "sftpTesting/penguins.jpg" To sRemotePath
    Get pvComObject of hoBdA to vBdA
    Get ComUploadBd Of hoSftp vBdA sRemotePath To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Download the file..
    Get Create (RefClass(cComChilkatBinData)) To hoBdB
    If (Not(IsComObjectCreated(hoBdB))) Begin
        Send CreateComObject of hoBdB
    End
    Get pvComObject of hoBdB to vBdB
    Get ComDownloadBd Of hoSftp sRemotePath vBdB To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp 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

    Send ComDisconnect To hoSftp


End_Procedure