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