AFNetworking表单请求(在一个请求中上传多个文件)

我们正在开发一个iOS应用程序。 该应用程序在单个请求中提供单个以及多个file upload选项。 我正在使用AFNetworking单个file upload,哪个工作正常。 现在,我们需要支持多个file upload。 我已经得到了我的HTML代码,实际上从web上传多个文件。我需要从iOS应用程序做同样的事情。 任何人都可以build议我们如何使用AFNetworking做同样的事情?

<form method="post" action="upload.php?key=ac2a04cc7b6d4420fa5e5eb1701fb0cc1acf7916&channelid=1" enctype="multipart/form-data"> <label>Title:</label> <input name="title" value="My Video Title" /><br /> <label>Date:</label> <input name="date" value="<?php echo time(); ?>" /><br /> <label>Location:</label> <input name="location" value="Sydney, Australia" /><br /> <textarea name="description">The description of the photo/video goes here</textarea><br /> <input name="file[]" type="file" multiple="multiple" /><br /> 

使用下面的代码将多个文件发送到您的表单。 根据需要定制,如果需要改变任何东西。

  NSArray *imageArray = [NSArray arrayWithObjects:[UIImage imageNamed:@"close_button.png"],[UIImage imageNamed:@"done_button.png"], nil]; __block int i=1; AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:@"yoururl"]; NSMutableURLRequest *request=nil; request = [httpClient multipartFormRequestWithMethod:@"POST" path:@"yoururl" parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { for(UIImage *eachImage in imageArray) { NSData *imageData = UIImagePNGRepresentation(eachImage); [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"file%d",i] fileName:[NSString stringWithFormat:@"abc%d.png",i] mimeType:@"image/png"]; i++; } }]; AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request]; [httpClient registerHTTPOperationClass:[AFHTTPRequestOperation class]]; [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) { NSData *data = (NSData *)responseObject; NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"Response -> %@",str); } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(@"Error -> %@",[error localizedDescription]); }]; 

在服务器端,我已经检查了test.php代码,我刚刚打印了print_r($ _ FILES),并在我的情况下打印以下对不起,让你猜测。

 Response -> Array ( [file1] => Array ( [name] => abc1.png [type] => image/png [tmp_name] => /tmp/phpiWbxSn [error] => 0 [size] => 1997 ) [file2] => Array ( [name] => abc2.png [type] => image/png [tmp_name] => /tmp/phpwtWTE8 [error] => 0 [size] => 1847 ) ) 

希望这可以帮助。

我尝试了AFHTTPNetwrok解决scheme,但没有工作,然后我在下面的“名称”键中添加方括号,最后图像上传成功。 我的问题是什么?

 NSData *imageData = UIImageJPEGRepresentation(img,1); [formData appendPartWithFileData:imageData name:[NSString stringWithFormat:@"images[%d]",i] fileName:[NSString stringWithFormat:@"images%d.jpg",i] mimeType:@"image/jpeg"];