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

发布于 2022-09-01 16:04:14 字数 816 浏览 29 评论 0

我想批量上传图片,大概几百到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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

傲鸠 2022-09-08 16:04:14

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

も让我眼熟你 2022-09-08 16:04:14

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

街角迷惘 2022-09-08 16:04:14

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文