【发布时间】:2015-05-12 05:00:00
【问题描述】:
我使用PickerController 并将一些图像加载到NSMutableArray。
现在我需要一次上传所有这些图片。我正在使用AFNetworking,我该怎么做?
我浏览了AFNetworking 文档,其中有一个名为Creating an Upload Task for a Multi-Part Request, with Progress 的部分。但是,我无法上传 NSMutableArray 中的图片。
**** 注意:我想将NSMutableArray 中的图像作为字节数组上传。我怎样才能做到这一点? ****
到目前为止我的代码,
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];
NSURL *URL = [NSURL URLWithString:@"site.com/upload"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
【问题讨论】:
-
你能压缩图片并通过互联网发送吗?
-
多部分请求是一种很好的方法。唯一的窍门是如何获取所选图像的
NSData。就个人而言,我建议不要使用UIImagePNGRepresentation或UIImageJPEGRepresentation并获取原始资产的实际字节(请参阅 stackoverflow.com/a/27709329/1271826)。然后使用github.com/AFNetworking/AFNetworking#post-multi-part-request 上传,appendPartWithFileData:name:fileName:mimeType:error:除外。显然,所有这些都假设您有一个旨在解析多部分请求的 Web 服务...... -
我应该循环
[formData appendPartWithFileData .....几次以上传多个文件吗? -
是的,这是解决问题的好方法。顺便说一句,您可能需要考虑您是否真的想要一个巨大的请求(因为如果您在上传大量图像的巨大请求中失败,您必须重新开始)还是对每个图像单独请求。后者需要更复杂的设计,但可能更容错。但这取决于你。
标签: ios objective-c swift xcode afnetworking