Sample code for 30+ languages & platforms
DataFlex

SFTP Upload and Download to a StringBuilder Object

See more SFTP Examples

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

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSftp
    Integer iPort
    Variant vSbA
    Handle hoSbA
    Boolean iBIncludeBOM
    String sRemotePath
    Variant vSbB
    Handle hoSbB
    Boolean iBCaseSensitive
    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(cComChilkatStringBuilder)) To hoSbA
    If (Not(IsComObjectCreated(hoSbA))) Begin
        Send CreateComObject of hoSbA
    End
    Get ComLoadFile Of hoSbA "qa_data/hamlet.xml" "utf-8" To iSuccess

    // Upload the contents of sbA to the SSH/SFTP server.
    Move False To iBIncludeBOM
    Move "sftpTesting/hamlet.xml" To sRemotePath
    Get pvComObject of hoSbA to vSbA
    Get ComUploadSb Of hoSftp vSbA sRemotePath "utf-8" iBIncludeBOM To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Download the file..
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbB
    If (Not(IsComObjectCreated(hoSbB))) Begin
        Send CreateComObject of hoSbB
    End
    Get pvComObject of hoSbB to vSbB
    Get ComDownloadSb Of hoSftp sRemotePath "utf-8" vSbB To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Verify that sbA and sbB have the exact same contents.
    Get ComLength Of hoSbA To iTemp1
    Showln "size of sbA: " iTemp1
    Move True To iBCaseSensitive
    Get ComContentsEqualSb Of hoSbA     Get pvComObject of hoSbB to vSbB
vSbB iBCaseSensitive 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