通过 AFNetworking 2.0 上传 iOS 图像
Posted
技术标签:
【中文标题】通过 AFNetworking 2.0 上传 iOS 图像【英文标题】:iOS Image upload via AFNetworking 2.0 【发布时间】:2013-10-09 01:31:12 【问题描述】:我一直在寻找新的 AFNetworking 2.0 上传图像的示例。 但是我碰壁了,无法弄清楚代码有什么问题。 所以这是我使用的代码
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
【问题讨论】:
【参考方案1】:我最终使用了多部分请求
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);
];
【讨论】:
appendPartWithFileData:imageData name:@"image" error:nil]
不再工作了,我猜。你应该使用:[formData appendPartWithFormData:imageData name:@"image"];
...但它仍然对我不起作用:/
如果以后不使用 fileURl,为什么还要费心呢?
@raistlin appendPartWithFileData
也为我工作。见***.com/a/20190352/1933185
@raistlin 我认为您的意思是“filePath”,这里似乎确实没有使用它。
@ordinaryman09 你知道如何在图片中添加 Header 值吗?以上是关于通过 AFNetworking 2.0 上传 iOS 图像的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 2.0 多部分/表单数据上传到 mySQL
AFNetworking 2.0 spring MVC 上传文件