Sample code for 30+ languages & platforms
Lianja

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

Lianja
llSuccess = .F.

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

loSftp = createobject("CkSFtp")

// Set some timeouts, in milliseconds:
loSftp.ConnectTimeoutMs = 5000
loSftp.IdleTimeoutMs = 10000

// Connect to the SSH server and then authenticate.
lnPort = 22
llSuccess = loSftp.Connect("MY-SSH-SERVER-DOMAIN-OR-IP",lnPort)
if (llSuccess = .T.) then
    llSuccess = loSftp.AuthenticatePw("MY-SSH-LOGIN","MY-SSH-PASSWORD")
    if (llSuccess = .T.) then
        llSuccess = loSftp.InitializeSftp()
    endif

endif

if (llSuccess <> .T.) then
    ? loSftp.LastErrorText
    release loSftp
    return
endif

loSbA = createobject("CkStringBuilder")
loSbA.LoadFile("qa_data/hamlet.xml","utf-8")

// Upload the contents of sbA to the SSH/SFTP server.
llBIncludeBOM = .F.
lcRemotePath = "sftpTesting/hamlet.xml"
llSuccess = loSftp.UploadSb(loSbA,lcRemotePath,"utf-8",llBIncludeBOM)
if (llSuccess <> .T.) then
    ? loSftp.LastErrorText
    release loSftp
    release loSbA
    return
endif

// Download the file..
loSbB = createobject("CkStringBuilder")
llSuccess = loSftp.DownloadSb(lcRemotePath,"utf-8",loSbB)
if (llSuccess <> .T.) then
    ? loSftp.LastErrorText
    release loSftp
    release loSbA
    release loSbB
    return
endif

// Verify that sbA and sbB have the exact same contents.
? "size of sbA: " + str(loSbA.Length)
llBCaseSensitive = .T.
if (loSbA.ContentsEqualSb(loSbB,llBCaseSensitive) = .T.) then
    ? "Contents are equal. Success."
else
    ? "Contents are NOT equal.  Failed."
endif

loSftp.Disconnect()


release loSftp
release loSbA
release loSbB