Sample code for 30+ languages & platforms
PowerBuilder

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

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Sftp
integer li_Port
oleobject loo_BdA
string ls_RemotePath
oleobject loo_BdB

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_BdA = create oleobject
li_rc = loo_BdA.ConnectToNewObject("Chilkat.BinData")

loo_BdA.LoadFile("qa_data/jpg/penguins.jpg")

// Upload the contents of bdA to the SSH/SFTP server.
ls_RemotePath = "sftpTesting/penguins.jpg"
li_Success = loo_Sftp.UploadBd(loo_BdA,ls_RemotePath)
if li_Success <> 1 then
    Write-Debug loo_Sftp.LastErrorText
    destroy loo_Sftp
    destroy loo_BdA
    return
end if

// Download the file..
loo_BdB = create oleobject
li_rc = loo_BdB.ConnectToNewObject("Chilkat.BinData")

li_Success = loo_Sftp.DownloadBd(ls_RemotePath,loo_BdB)
if li_Success <> 1 then
    Write-Debug loo_Sftp.LastErrorText
    destroy loo_Sftp
    destroy loo_BdA
    destroy loo_BdB
    return
end if

// Verify that bdA and bdB have the exact same contents.
Write-Debug "size of bdA: " + string(loo_BdA.NumBytes)
if loo_BdA.ContentsEqual(loo_BdB) = 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_BdA
destroy loo_BdB