AFNetworking多个file upload

我想上传一些图片到服务器,所以我使用AFNetWork来发布文件。 代码在这里:

UIImage *image1 = [UIImage imageNamed:@"about_app"]; UIImage *image2 = [UIImage imageNamed:@"alter"]; NSArray *array = @[image1,image2]; __block int i = 0; NSMutableURLRequest *request = [[AFNetWorkSingleton shareInstance] multipartFormRequestWithMethod:@"POST" path:@"Mindex/getimg" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>formData){ for(UIImage *eachImage in array) { NSData *imageData = UIImageJPEGRepresentation(eachImage,0.5); [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d",i ] fileName:[NSString stringWithFormat:@"abc%d.jpg",i ] mimeType:@"image/jpeg"]; i++; } }]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject){.....} 

这不行! 但是当我使用下面的代码来replacemultipartFormRequestWithMethod方法中的“for”语句时,所有的事情都是正确的! 但如果我不能确认图像数组的计数,我必须使用“for”语句,我的代码有问题吗?

  [formData appendPartWithFileData:UIImageJPEGRepresentation([array objectAtIndex:0], 0.5) name:@"image1" fileName:@"image1.jpg" mimeType:@"image/jpeg"]; [formData appendPartWithFileData:UIImageJPEGRepresentation([array objectAtIndex:1], 0.5) name:@"image2" fileName:@"image2.jpg" mimeType:@"image/jpeg"]; 

将variablesi放入块中。 abc file的名称从abc更改为file

 UIImage *image1 = [UIImage imageNamed:@"about_app"]; UIImage *image2 = [UIImage imageNamed:@"alter"]; NSArray *array = @[image1,image2]; NSMutableURLRequest *request = [[AFNetWorkSingleton shareInstance] multipartFormRequestWithMethod:@"POST" path:@"Mindex/getimg" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>formData){ int i = 0; for(UIImage *eachImage in array) { NSData *imageData = UIImageJPEGRepresentation(eachImage,0.5); [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d",i ] fileName:[NSString stringWithFormat:@"file%d.jpg",i ] mimeType:@"image/jpeg"]; i++; } }]; 

只需更改for循环语法

  UIImage *image1 = [UIImage imageNamed:@"about_app"]; UIImage *image2 = [UIImage imageNamed:@"alter"]; NSArray *array = @[image1,image2]; NSMutableURLRequest *request = [[AFNetWorkSingleton shareInstance] multipartFormRequestWithMethod:@"POST" path:@"Mindex/getimg" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData>formData){ for(int i=0;i<[array count];i++) { UIImage *eachImage = [array objectAtIndex:i]; NSData *imageData = UIImageJPEGRepresentation(eachImage,0.5); [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d",i ] fileName:[NSString stringWithFormat:@"abc%d.jpg",i ] mimeType:@"image/jpeg"]; } }]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject){.....} 

要将任何types的file upload到服务器,请将mimeType设置为 – > file / *

  [formData appendPartWithFileData:Data name:@"keyName" fileName:@"yourFileName" mimeType:@"file/*"];