Sample code for 30+ languages & platforms
Objective-C

REST File Upload (multipart/form-data)

See more REST Examples

Demonstrates how to upload a file using multipart/form-data.

Chilkat Objective-C Downloads

Objective-C
#import <CkoRest.h>
#import <CkoStream.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.

CkoRest *rest = [[CkoRest alloc] init];

// Connect to the HTTP server using TLS.
BOOL bTls = YES;
int port = 443;
BOOL bAutoReconnect = YES;
// Make sure to replace "www.chilkatsoft.com" with your domain..
success = [rest Connect: @"www.chilkatsoft.com" port: [NSNumber numberWithInt: port] tls: bTls autoReconnect: bAutoReconnect];
if (success != YES) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

CkoStream *fileStream = [[CkoStream alloc] init];
fileStream.SourceFile = @"qa_data/jpg/starfish.jpg";

[rest AddHeader: @"Content-Type" value: @"multipart/form-data"];

rest.PartSelector = @"1";
[rest AddHeader: @"Content-Type" value: @"image/jpg"];
[rest AddHeader: @"Content-Disposition" value: @"form-data; name=\"filename\"; filename=\"starfish.jpg\""];
[rest SetMultipartBodyStream: fileStream];
rest.PartSelector = @"0";

NSString *responseBody = [rest FullRequestMultipart: @"POST" uriPath: @"/the_uri_path_to_receive_the_upload"];
if (rest.LastMethodSuccess != YES) {
    NSLog(@"%@",rest.LastErrorText);
    return;
}

if ([rest.ResponseStatusCode intValue] != 200) {
    NSLog(@"%@%d",@"Received error response code: ",[rest.ResponseStatusCode intValue]);
    return;
}

NSLog(@"%@",@"File uploaded");