iOS如何批量传图(1000张左右)到服务器端?
我想批量上传图片,大概几百到1000张不等,本来使用AFNetwoking的方法,但是有个缺点,会一次性读取所有图片数据,然后内存就蹭蹭蹭上涨了,
NSOperationQueue *operationQueue = [[NSOperationQueue alloc]init];
[operationQueue setMaxConcurrentOperationCount:1];
for (NSURL *fileURL in filesToUpload) {
NSURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST"
URLString:@"http://example.com/upload" parameters:nil
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileURL:fileURL name:@"images[]" error:nil];
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operationQueue addOperation:operation];
}
有没有什么办法能够实现一个队列,当要上传到该照片时候,才读取照片数据?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
传完一个在成功/失败的block里面调用本方法,并且指针移动一次;
EX:
-(void)fangfa:(int)count{
if (count < 0){
return;
}
[class complateblock:{
[self fangfa:count - 1];
},uploadimgArr[count]];
}
不要把文件存到队列里,只要先存一个文件名,执行的时候再去读取文件的内容,这样子就不会有这个问题了
使用猿题库的 网络层 中的批量上传 将你的图片 进行数组切片 比如 分批 10批 每批 10张 BATCH 数量是10 开始上传 这样内存就不会爆了。。
而且话说 你读取 也不可能一口气 读取1000张图片 你肯定要有读取策略 否则 不等AF 爆 你自己的代码 就会挤爆内存。。所以 读取就要先分批~