Perl
Perl
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 Perl Downloads
use chilkat();
$success = 0;
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$sftp = chilkat::CkSFtp->new();
# Set some timeouts, in milliseconds:
$sftp->put_ConnectTimeoutMs(5000);
$sftp->put_IdleTimeoutMs(10000);
# Connect to the SSH server and then authenticate.
$port = 22;
$success = $sftp->Connect("MY-SSH-SERVER-DOMAIN-OR-IP",$port);
if ($success == 1) {
$success = $sftp->AuthenticatePw("MY-SSH-LOGIN","MY-SSH-PASSWORD");
if ($success == 1) {
$success = $sftp->InitializeSftp();
}
}
if ($success != 1) {
print $sftp->lastErrorText() . "\r\n";
exit;
}
$sbA = chilkat::CkStringBuilder->new();
$sbA->LoadFile("qa_data/hamlet.xml","utf-8");
# Upload the contents of sbA to the SSH/SFTP server.
$bIncludeBOM = 0;
$remotePath = "sftpTesting/hamlet.xml";
$success = $sftp->UploadSb($sbA,$remotePath,"utf-8",$bIncludeBOM);
if ($success != 1) {
print $sftp->lastErrorText() . "\r\n";
exit;
}
# Download the file..
$sbB = chilkat::CkStringBuilder->new();
$success = $sftp->DownloadSb($remotePath,"utf-8",$sbB);
if ($success != 1) {
print $sftp->lastErrorText() . "\r\n";
exit;
}
# Verify that sbA and sbB have the exact same contents.
print "size of sbA: " . $sbA->get_Length() . "\r\n";
$bCaseSensitive = 1;
if ($sbA->ContentsEqualSb($sbB,$bCaseSensitive) == 1) {
print "Contents are equal. Success." . "\r\n";
}
else {
print "Contents are NOT equal. Failed." . "\r\n";
}
$sftp->Disconnect();