首页 > iOS如何批量传图(1000张左右)到服务器端?

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];
   }

有没有什么办法能够实现一个队列,当要上传到该照片时候,才读取照片数据?


使用猿题库的 网络层 中的批量上传 将你的图片 进行数组切片 比如 分批 10批 每批 10张 BATCH 数量是10 开始上传 这样内存就不会爆了。。
而且话说 你读取 也不可能一口气 读取1000张图片 你肯定要有读取策略 否则 不等AF 爆 你自己的代码 就会挤爆内存。。所以 读取就要先分批~


传完一个在成功/失败的block里面调用本方法,并且指针移动一次;
EX:
-(void)fangfa:(int)count{
if (count < 0){
return;
}
[class complateblock:{
[self fangfa:count - 1];
},uploadimgArr[count]];
}


不要把文件存到队列里,只要先存一个文件名,执行的时候再去读取文件的内容,这样子就不会有这个问题了

【热门文章】
【热门文章】