afnetworking 多文件上传

Posted

技术标签:

【中文标题】afnetworking 多文件上传【英文标题】:afnetworking multiple file upload 【发布时间】:2012-12-17 04:01:26 【问题描述】:

我正在使用 AFNetworking 上传多个文件。 我需要为每个图像发送额外的信息,例如图像宽度/高度。

我以为我会遍历图像并发送它们,但 AFNetworking 并不能完全处理它。 (我怀疑 AFNetworking 将多个请求合二为一,覆盖了额外的信息)

下面是我的代码。

NSURL *url = [NSURL URLWithString:@URL_BASE];
int count = [imageArray count];

for(int i = 0; i < count; ++i)
 
     UIImage* image = [imageArray objectAtIndex:i];
     AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url];
     NSDictionary* params = [NSDictionary dictionaryWithObjectsAndKeys:
                                             [NSNumber numberWithFloat: image.size.width], @"width",
                                             [NSNumber numberWithFloat: image.size.height], @"height",
                                          nil];

     NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:@PATH_ALBUM_IMAGE_UPLOAD parameters:params constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) 
             [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d", i]  fileName:@"avatar.jpg" mimeyTpe:@"image/jpeg"];
         ];

     AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
     [operation setUploadProgressBlock:^(NSInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) 

             [progressView setProgress: totalBytesWritten*1.0f / totalBytesExpectedToWrite animated: YES];
             NSLog(@"Sent %lld of %lld bytes", totalBytesWritten, totalBytesExpectedToWrite);
             if(totalBytesWritten >= totalBytesExpectedToWrite)
             
                 progressView.hidden = YES;
             
         ];
     [operation start];
 

【问题讨论】:

【参考方案1】:

这原来是 AFNetworking 的一个已知(但现已修复)错误。

AFNetworking

问题解决了。

【讨论】:

但如果我将一个 name 用于多个文件,最后一个将覆盖前者。有什么建议吗?

以上是关于afnetworking 多文件上传的主要内容,如果未能解决你的问题,请参考以下文章

AFNetworking 多文件上传

使用AFnetworking以多部分格式上传图像在ios中不起作用

AFNetworking 2.0 多部分/表单数据上传到 mySQL

使用 afnetworking 2.1.0 实现“多部分请求的上传任务”时出错

获取 System.InvalidOperationException:请求格式无效:通过 AFNetworking 上传图像(数据)时出现多部分/表单数据错误

[iOS]服务器使用php时多图片上传AFNetworking的设置