Mohammad irani
Mohammad irani

Reputation: 23

How to upload video from photo library using AFNetworking 3.0?

AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] 
initWithBaseURL:[NSURL URLWithString:@"http://192.168.1.7/rakyesh/test/rest/rest/upload"]];

NSData *imageData= UIImagePNGRepresentation([UIImage  imageNamed:@"appl.png"]);

manager.requestSerializer = [AFJSONRequestSerializer serializer];

[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];

[manager POST:@"http://192.168.1.7/rakyesh/test/rest/rest/upload"parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
 {
     [formData appendPartWithFileData:imageData name:@"image" fileName:@"appl.png" mimeType:@"image/png"];
 }success: ^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject)

 {
     NSLog(@"success!");
 } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
     NSLog(@"error: %@", error);
 }];

Upvotes: 0

Views: 1097

Answers (1)

Piyush
Piyush

Reputation: 1544

You can do it with following code

For Image Uploading

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

NSURL *URL = [NSURL URLWithString:@"http://example.com/upload"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];

NSURL *filePath = [NSURL fileURLWithPath:@"file://path/to/image.png"];
NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromFile:filePath progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
    if (error) {
        NSLog(@"Error: %@", error);
    } else {
        NSLog(@"Success: %@ %@", response, responseObject);
    }
}];
[uploadTask resume]; 

Here is the reference for it AFNetworking.

For Uploading Video

NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"http://example.com/upload" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
 [formData appendPartWithFileData:videoData name:@"file" fileName:@"filename.mov" mimeType:@"video/quicktime"];
    } error:nil];

    AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

    NSURLSessionUploadTask *uploadTask;
    uploadTask = [manager
                  uploadTaskWithStreamedRequest:request
                  progress:^(NSProgress * _Nonnull uploadProgress) {
                      // This is not called back on the main queue.
                      // You are responsible for dispatching to the main queue for UI updates
                      dispatch_async(dispatch_get_main_queue(), ^{
                          //Update the progress view
                          [progressView setProgress:uploadProgress.fractionCompleted];
                      });
                  }
                  completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {
                      if (error) {
                          NSLog(@"Error: %@", error);
                      } else {
                          NSLog(@"%@ %@", response, responseObject);
                      }
                  }];

    [uploadTask resume];

Upvotes: 2

Related Questions