Sample code for 30+ languages & platforms
Objective-C

FTP Download Binary File to a Stream

See more FTP Examples

Demonstrates how to FTP download a binary file to a Chilkat stream.

Note: This example requires Chilkat v9.5.0.67 or greater.

Chilkat Objective-C Downloads

Objective-C
#import <CkoFtp2.h>
#import <CkoFileAccess.h>
#import <CkoStream.h>
#import <CkoTask.h>
#import <CkoBinData.h>

BOOL success = NO;

//  This example assumes the Chilkat FTP2 API to have been previously unlocked.
//  See FTP2 Unlock Sample for sample code.

CkoFtp2 *ftp = [[CkoFtp2 alloc] init];

ftp.Hostname = @"www.my-ftp-server.com";
ftp.Username = @"mFtpLogin";
ftp.Password = @"myFtpPassword";
ftp.AuthTls = YES;
ftp.Passive = YES;

//  Connect and login to the FTP server using TLS.
success = [ftp Connect];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

//  We'll read the incoming data chunk-by-chunk and write to an output file.
CkoFileAccess *fac = [[CkoFileAccess alloc] init];
success = [fac OpenForWrite: @"qa_output/penguins2.jpg"];
if (success != YES) {
    NSLog(@"%@",fac.LastErrorText);
    return;
}

CkoStream *streamObj = [[CkoStream alloc] init];

//  Create a task to do the FTP download.
CkoTask *t = [ftp GetFileToStreamAsync: @"penguins2.jpg" to: streamObj];
if (ftp.LastMethodSuccess != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

//  Start the task in a background thread.
[t Run];

CkoBinData *bd = [[CkoBinData alloc] init];
while (streamObj.EndOfStream != YES) {
    //  Get the next chunk of JPG bytes.
    [streamObj ReadBd: bd];
    //  Do something with it..
    //  In this simple example, we'll just write to the file.
    [fac FileWriteBd: bd offset: [NSNumber numberWithInt: 0] numBytes: [NSNumber numberWithInt: 0]];
    //  Clear for the next read.
    [bd Clear];
}

[fac FileClose];

NSLog(@"%@",@"Success.");