Programming Examples

ChilkatHOMEASPVisual BasicVB.NETC#CC++MFCDelphiFoxProJavaPerlPythonRubySQL ServerVBScript

PHP ActiveX Examples

Bounced Mail
Bz2
Certificates/Keys
Charset
CSV
DKIM / DomainKey
Diffie-Hellman
DSA
Email Object
Encryption
FileAccess
FTP
HTML Conversion
HTTP
IMAP
MHT / HTML Email
MIME
NTLM
POP3
RSA
SMTP
Socket
Spider
SSH Key
SSH
SSH Tunnel
SFTP
Tar
Upload
XML
Zip
Amazon S3


 

 

 

 

 

 

 

 

SFTP Download Files Matching a Pattern

Demonstrates how to download the files in a remote SFTP directory matching a file pattern. The example opens a directory, iterates over the files, and downloads each file matching a file pattern, such as "*.xml".

Download Chilkat 32-bit SSH / SFTP ActiveX (.msi)

Download All 32-bit Chilkat ActiveX Components (.zip)

Download All 64-bit Chilkat ActiveX Components (.zip)

<?php

//  Important: It is helpful to send the contents of the
//  sftp.LastErrorText property when requesting support.

$sftp = new COM("Chilkat.SFtp");

//  Any string automatically begins a fully-functional 30-day trial.
$success = $sftp->UnlockComponent('Anything for 30-day trial');
if ($success != true) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

//  Set some timeouts, in milliseconds:
$sftp->ConnectTimeoutMs = 5000;
$sftp->IdleTimeoutMs = 10000;

//  Connect to the SSH server.
//  The standard SSH port = 22
//  The hostname may be a hostname or IP address.

$hostname = 'www.my-sftp-server.com';
$port = 22;
$success = $sftp->Connect($hostname,$port);
if ($success != true) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

//  Authenticate with the SSH server.  Chilkat SFTP supports
//  both password-based authenication as well as public-key
//  authentication.  This example uses password authenication.
$success = $sftp->AuthenticatePw('myLogin','myPassword');
if ($success != true) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

//  After authenticating, the SFTP subsystem must be initialized:
$success = $sftp->InitializeSftp();
if ($success != true) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

//  Open a directory on the server...
//  Paths starting with a slash are "absolute", and are relative
//  to the root of the file system. Names starting with any other
//  character are relative to the user's default directory (home directory).
//  A path component of ".." refers to the parent directory,
//  and "." refers to the current directory.

$dirPath = 'abc123';
$handle = $sftp->openDir($dirPath);
if (is_null($handle)) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

//  Download the directory listing:

// dirListing is a Chilkat.SFtpDir
$dirListing = $sftp->ReadDir($handle);
if (is_null($dirListing)) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

//  Iterate over the files.

$n = $dirListing->NumFilesAndDirs;
if ($n == 0) {
    print 'No entries found in this directory.' . "\n";
}
else {
    for ($i = 0; $i <= $n - 1; $i++) {

        // fileObj is a Chilkat.SFtpFile
        $fileObj = $dirListing->GetFileObject($i);

        print $fileObj->filename() . "\n";

        //  Does this filename match the desired pattern?
        //  Write code here to determine if it's a match or not.

        //  Assuming it's a match, you would download the file
        //  like this:

        $remoteFilePath = $dirPath . '/';
        $remoteFilePath = $remoteFilePath . $fileObj->filename();
        $localFilePath = $fileObj->filename();
        $success = $sftp->DownloadFileByName($remoteFilePath,$localFilePath);
        if ($success != true) {
            print $sftp->lastErrorText() . "\n";
            exit;
        }

    }

}

//  Close the directory
$success = $sftp->CloseHandle($handle);
if ($success != true) {
    print $sftp->lastErrorText() . "\n";
    exit;
}

print 'Success.' . "\n";
?>

© 2000-2013 Chilkat Software, Inc. All Rights Reserved.