Objective-C
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
#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.");