iOs通过AFN网络上传多个文件
我在iPhone项目中使用AFnetworking,我是Objective C的初学者 我知道如何使用块上传多个文件,如下所述: 因此,我们可以在块中添加任意数量的formData元素 但在我的情况下,我不知道我会有多少张图片,因为用户可以自由选择很多。图片的数据被存储到一个数组中 所以我在块中尝试了类似的方法,但只上传了最后一个元素:iOs通过AFN网络上传多个文件,ios,xcode,file-upload,afnetworking,Ios,Xcode,File Upload,Afnetworking,我在iPhone项目中使用AFnetworking,我是Objective C的初学者 我知道如何使用块上传多个文件,如下所述: 因此,我们可以在块中添加任意数量的formData元素 但在我的情况下,我不知道我会有多少张图片,因为用户可以自由选择很多。图片的数据被存储到一个数组中 所以我在块中尝试了类似的方法,但只上传了最后一个元素: for(NSDictionary *dict in imagesInfo) { UIImage *theFile = [dict objectF
for(NSDictionary *dict in imagesInfo) {
UIImage *theFile = [dict objectForKey:UIImagePickerControllerOriginalImage];
NSData *imageData = UIImageJPEGRepresentation(theFile, 0.5);
[formData appendPartWithFileData:imageData name:@"name" fileName:@"name.jpg" mimeType:@"image/jpeg"];
}
无论如何,当第一个请求完成时,我可以通过启动另一个请求来让它工作。
但我想有一个最好的方法让它工作
很多坦克
鲁道夫试试AsitpRequest图书馆。使用此库,您可以同时或逐个下载/上载多个文件:AFNetworking有两个很好的实用程序用于管理“批量”请求。有3种方法,特别是您应该从AFHTTPclipse类考虑: 将批次的BatchOfHttPrequesStoperationsWithRequests//排入队列 将批次的BatchOfHttPrequestoperations//排入队列 为单个请求排队HttpRequestOperation// 基本上,您将循环浏览照片数组,并构建一个新的NSMutableURLRequest数组(与您现在可能正在做的非常类似)。对于每张照片,创建一个NSMutualableUrlRequest或一个HTTPRequestOperation并将其弹出到数组中。用户可以使用上述方法之一将新的HTTP URL请求数组传递给AFNetworking 如果要以批处理方式管理上载过程,请使用批处理方法之一。如果您只是想启动并忘记,请使用enqueueHTTPRequestOperation,它仍然会带给您所有的快乐 它看起来像这样:
AFHTTPClient *photoUploader = [[AFHTTPClient alloc] init];
[photoUploader enqueueBatchOfHTTPRequestOperationsWithRequests:self.photosWrappedInNSURLS progressBlock:^(NSUInteger numberOfCompletedOperations, NSUInteger totalNumberOfOperations) {
//block gets called after each succesful operation
//useful for messages like 1 of 3 complete
} completionBlock:^(NSArray *operations) {
//block gets called after all requests are complete
}];
如果您阅读了文档,他们会建议您创建自己的AFHTTPClient子类,并将其构造为单例。您不必这样使用它,但是如果您有多个类型的连接返回到同一主机或服务,那么它非常方便。我发现它在我的上一个项目中非常有用,并且取得了非常好的成功
希望有帮助
很好您应该为每个文件指定不同的名称。我想这会解决问题。我读到这句话的意思是“如果你不确定如何使用一个现代化的库,那么你应该找出如何使用一个不推荐使用的库。”这是一个糟糕的建议。许多人仍然在他们的项目中使用这个“不推荐使用的”库。它适用于所有版本的iOS。尽管如此,问题表明他们已经在使用一个库,并且想知道如何使用它。再说一遍,告诉他们如何使用不同且不受支持的库是没有帮助的。您是否尝试过更改每个附件的名称和文件名?