2013-10-09 66 views
6

我一直在寻找新的AFNetworking 2.0上传图片的例子。 但是我打墙,无法弄清楚代码有什么问题。 所以这是我用通过AFNetworking 2.0上传iOS图片

NSData *imageData = UIImageJPEGRepresentation(image, 0.5); 
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 


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

NSURL *URL = [NSURL URLWithString:@"http://myserverurl.com"]; 

NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithRequest:request fromData:imageData progress:nil completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) { 
    if (error) { 
     NSLog(@"Error: %@", error); 
    } else { 
     NSLog(@"Success: %@ %@", response, responseObject); 
    } 
}]; 
[uploadTask resume]; 

TIA代码

+0

以何种方式这难道不是工作?你有错误吗? –

回答

34

我结束了使用多部分请求

UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage]; 
NSData *imageData = UIImageJPEGRepresentation(image, 0.5); 
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
NSDictionary *parameters = @{@"foo": @"bar"}; 
[manager POST:@"http://example.com/resources.json" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 
    [formData appendPartWithFormData:imageData name:@"image"]; 
} success:^(AFHTTPRequestOperation *operation, id responseObject) { 
    NSLog(@"Success: %@", responseObject); 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
    NSLog(@"Error: %@", error); 
}]; 
+3

'appendPartWithFileData:imageData名称:@“image”错误:无]'不再工作了,我想。你应该使用:'[formData appendPartWithFormData:imageData name:@“image”];'...但它仍然不适用于我:/ – raistlin

+4

为什么你甚至不打算在fileURl之后使用它? – raistlin

+2

@raistlin'appendPartWithFileData'也适用于我。看到http://stackoverflow.com/a/20190352/1933185 – jerik