Sample code for 30+ languages & platforms
Tcl

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

Tcl

load ./chilkat.dll

set success 0

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

set sftp [new_CkSFtp]

# Set some timeouts, in milliseconds:
CkSFtp_put_ConnectTimeoutMs $sftp 5000
CkSFtp_put_IdleTimeoutMs $sftp 10000

# Connect to the SSH server and then authenticate.
set port 22
set success [CkSFtp_Connect $sftp "MY-SSH-SERVER-DOMAIN-OR-IP" $port]
if {$success == 1} then {
    set success [CkSFtp_AuthenticatePw $sftp "MY-SSH-LOGIN" "MY-SSH-PASSWORD"]
    if {$success == 1} then {
        set success [CkSFtp_InitializeSftp $sftp]
    }

}

if {$success != 1} then {
    puts [CkSFtp_lastErrorText $sftp]
    delete_CkSFtp $sftp
    exit
}

set sbA [new_CkStringBuilder]

CkStringBuilder_LoadFile $sbA "qa_data/hamlet.xml" "utf-8"

# Upload the contents of sbA to the SSH/SFTP server.
set bIncludeBOM 0
set remotePath "sftpTesting/hamlet.xml"
set success [CkSFtp_UploadSb $sftp $sbA $remotePath "utf-8" $bIncludeBOM]
if {$success != 1} then {
    puts [CkSFtp_lastErrorText $sftp]
    delete_CkSFtp $sftp
    delete_CkStringBuilder $sbA
    exit
}

# Download the file..
set sbB [new_CkStringBuilder]

set success [CkSFtp_DownloadSb $sftp $remotePath "utf-8" $sbB]
if {$success != 1} then {
    puts [CkSFtp_lastErrorText $sftp]
    delete_CkSFtp $sftp
    delete_CkStringBuilder $sbA
    delete_CkStringBuilder $sbB
    exit
}

# Verify that sbA and sbB have the exact same contents.
puts "size of sbA: [CkStringBuilder_get_Length $sbA]"
set bCaseSensitive 1
if {[CkStringBuilder_ContentsEqualSb $sbA $sbB $bCaseSensitive] == 1} then {
    puts "Contents are equal. Success."
} else {
    puts "Contents are NOT equal.  Failed."
}

CkSFtp_Disconnect $sftp

delete_CkSFtp $sftp
delete_CkStringBuilder $sbA
delete_CkStringBuilder $sbB