Sample code for 30+ languages & platforms
Perl

FTP Upload / Download to StringBuilder

Demonstrate how to upload from a Chilkat StringBuilder object, and download into a StringBuilder object.

Chilkat Perl Downloads

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

# This example assumes Chilkat Ftp2 to have been previously unlocked.
# See Unlock Ftp2 for sample code.

my $ftp = Chilkat2::Ftp2->new;

$ftp->Hostname('www.my-ftp-server.com');
$ftp->Username('mFtpLogin');
$ftp->Password('myFtpPassword');

# Connect to the FTP server.
my $success = $ftp->ConnectOnly();
if (!$success) {
    print $ftp->LastErrorText, "\n";
    exit;
}

# Authenticate with the FTP server.
$success = $ftp->LoginAfterConnectOnly();
if (!$success) {
    print $ftp->LastErrorText, "\n";
    exit;
}

my $sbA = Chilkat2::StringBuilder->new;
$sbA->LoadFile('qa_data/hamlet.xml', 'utf-8');

# Upload the contents of sbA to the FTP server.
my $bIncludeBOM = 0;
my $remoteFilename = 'hamletFromSb.xml';
$success = $ftp->PutFileSb($sbA, 'utf-8', $bIncludeBOM, $remoteFilename);
if (!$success) {
    print $ftp->LastErrorText, "\n";
    exit;
}

# Download...
my $sbB = Chilkat2::StringBuilder->new;
$success = $ftp->GetFileSb($remoteFilename, 'utf-8', $sbB);
if (!$success) {
    print $ftp->LastErrorText, "\n";
    exit;
}

# Verify that sbA and sbB have the exact same contents.
print 'size of sbA: ', $sbA->Length, "\n";
my $bCaseSensitive = 1;
if ($sbA->ContentsEqualSb($sbB, $bCaseSensitive)) {
    print "Contents are equal. Success.\n";
} else {
    print "Contents are NOT equal.  Failed.\n";
}

$ftp->Disconnect();