Sample code for 30+ languages & platforms
Objective-C

FTP through HTTP Tunnel (FTP over HTTP Proxy)

See more FTP Examples

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

FTP through an HTTP tunnel (via an HTTP proxy server that supports HTTP tunneling).

Chilkat Objective-C Downloads

Objective-C
#import <CkoFtp2.h>
#import <NSString.h>

BOOL success = NO;

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

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

ftp.Hostname = @"ftp.example.com";
ftp.Username = @"login";
ftp.Password = @"password";

// Set the HTTP proxy server properties.
// This is to connect via HTTP/1.1 using CONNECT method
ftp.HttpProxyHostname = @"192.168.1.127";
ftp.HttpProxyPort = [NSNumber numberWithInt:8080];

// If the proxy server requires authentication...
ftp.HttpProxyUsername = @"myProxyUsername";
ftp.HttpProxyPassword = @"myProxyPassword";

// FTP over an HTTP proxy requires that FTP Passive mode be used
// for data transfers. It is not possible to use non-passive (active) mode
// for FTP over HTTP.
ftp.Passive = YES;

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

// Change to the remote directory where the file will be uploaded.
success = [ftp ChangeRemoteDir: @"junk"];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

// Upload a file.
NSString *localFilename = @"c:/temp/hamlet.xml";
NSString *remoteFilename = @"hamlet.xml";

success = [ftp PutFile: localFilename remoteFilename: remoteFilename];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

success = [ftp Disconnect];

NSLog(@"%@",@"File Uploaded!");