Sample code for 30+ languages & platforms
Perl

Synchronize Remote Directory Tree

See more FTP Examples

Uploads a directory tree from the local filesystem to the FTP server. Synchronization modes include:

mode=0: Upload all files
mode=1: Upload all files that do not exist on the FTP server.
mode=2: Upload newer or non-existant files.
mode=3: Upload only newer files. If a file does not already exist on the FTP server, it is not uploaded.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

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

$ftp = chilkat::CkFtp2->new();

$ftp->put_Hostname("ftp.example.com");
$ftp->put_Username("login");
$ftp->put_Password("password");

$ftp->put_KeepSessionLog(1);

# Connect and login to the FTP server.
$success = $ftp->Connect();
if ($success != 1) {
    print $ftp->lastErrorText() . "\r\n";
    exit;
}

# Set the current remote directory to the root of
# the tree where files are uploaded.
$success = $ftp->ChangeRemoteDir("/abc123");
if ($success != 1) {
    print $ftp->lastErrorText() . "\r\n";
    exit;
}

# Recursively upload all non-existant and newer files.
$mode = 2;
$success = $ftp->SyncRemoteTree("c:/temp/abc123",$mode);
if ($success != 1) {
    print $ftp->lastErrorText() . "\r\n";
    exit;
}

$success = $ftp->Disconnect();

# Display the session log.  
print $ftp->sessionLog() . "\r\n";