Sample code for 30+ languages & platforms
Objective-C

Bandwidth Throttled Asynchronous HTTP Upload

See more Upload Examples

Demonstrates how to do an HTTP upload asynchronously in a background thread with limiting the rate to an approximate number of bytes/second. The only difference between this example and one without bandwidth throttling is that the BandwidthThrottleUp property is set.

Chilkat Objective-C Downloads

Objective-C
#import <CkoUpload.h>

BOOL success = NO;

CkoUpload *upload = [[CkoUpload alloc] init];

// Specify the page (ASP, ASP.NET, Perl, Python, Ruby, CGI, etc)
// that will process the HTTP Upload.
upload.Hostname = @"www.mywebserver.com";
upload.Path = @"/receiveUpload.aspx";

// Add one or more files to be uploaded.
[upload AddFileReference: @"file1" path: @"dude.gif"];
[upload AddFileReference: @"file2" path: @"pigs.xml"];
[upload AddFileReference: @"file3" path: @"sample.doc"];

// Set the BandwidthThrottleUp property to throttle to approx 64K/second
upload.BandwidthThrottleUp = [NSNumber numberWithInt:65536];

// Begin the HTTP upload in a background thread:
success = [upload BeginUpload];
if (success != YES) {
    NSLog(@"%@",upload.LastErrorText);
}
else {
    NSLog(@"%@",@"Upload started...");
}

// Wait for the upload to finish.
// Print the progress as we wait...
while ((upload.UploadInProgress == YES)) {
    // We can abort the upload at any point by calling:
    // upload.AbortUpload();

    // Display the percentage complete and the number of bytes uploaded so far..
    // The total upload size will become set after the upload begins:
    NSLog(@"%d%@%d%@%d",upload.PercentUploaded,@"% ",upload.NumBytesSent,@"/",upload.TotalUploadSize);

    // Sleep 2/10ths of a second.
    [upload SleepMs: [NSNumber numberWithInt: 200]];

}

// Did the upload succeed?
if (upload.UploadSuccess == YES) {
    NSLog(@"%@",@"Files uploaded!");
}
else {
    NSLog(@"%@",upload.LastErrorText);
}