Sample code for 30+ languages & platforms
PowerBuilder

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

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Sftp
integer li_Port
oleobject loo_SbA
integer li_BIncludeBOM
string ls_RemotePath
oleobject loo_SbB
integer li_BCaseSensitive

li_Success = 0

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

loo_Sftp = create oleobject
li_rc = loo_Sftp.ConnectToNewObject("Chilkat.SFtp")
if li_rc < 0 then
    destroy loo_Sftp
    MessageBox("Error","Connecting to COM object failed")
    return
end if

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

// Connect to the SSH server and then authenticate.
li_Port = 22
li_Success = loo_Sftp.Connect("MY-SSH-SERVER-DOMAIN-OR-IP",li_Port)
if li_Success = 1 then
    li_Success = loo_Sftp.AuthenticatePw("MY-SSH-LOGIN","MY-SSH-PASSWORD")
    if li_Success = 1 then
        li_Success = loo_Sftp.InitializeSftp()
    end if

end if

if li_Success <> 1 then
    Write-Debug loo_Sftp.LastErrorText
    destroy loo_Sftp
    return
end if

loo_SbA = create oleobject
li_rc = loo_SbA.ConnectToNewObject("Chilkat.StringBuilder")

loo_SbA.LoadFile("qa_data/hamlet.xml","utf-8")

// Upload the contents of sbA to the SSH/SFTP server.
li_BIncludeBOM = 0
ls_RemotePath = "sftpTesting/hamlet.xml"
li_Success = loo_Sftp.UploadSb(loo_SbA,ls_RemotePath,"utf-8",li_BIncludeBOM)
if li_Success <> 1 then
    Write-Debug loo_Sftp.LastErrorText
    destroy loo_Sftp
    destroy loo_SbA
    return
end if

// Download the file..
loo_SbB = create oleobject
li_rc = loo_SbB.ConnectToNewObject("Chilkat.StringBuilder")

li_Success = loo_Sftp.DownloadSb(ls_RemotePath,"utf-8",loo_SbB)
if li_Success <> 1 then
    Write-Debug loo_Sftp.LastErrorText
    destroy loo_Sftp
    destroy loo_SbA
    destroy loo_SbB
    return
end if

// Verify that sbA and sbB have the exact same contents.
Write-Debug "size of sbA: " + string(loo_SbA.Length)
li_BCaseSensitive = 1
if loo_SbA.ContentsEqualSb(loo_SbB,li_BCaseSensitive) = 1 then
    Write-Debug "Contents are equal. Success."
else
    Write-Debug "Contents are NOT equal.  Failed."
end if

loo_Sftp.Disconnect()


destroy loo_Sftp
destroy loo_SbA
destroy loo_SbB