将多个图像发送到 Web 服务器

Posted

技术标签:

【中文标题】将多个图像发送到 Web 服务器【英文标题】:Sending multiple Images to Web server 【发布时间】:2013-12-26 06:58:50 【问题描述】:

我正在一个应用程序中工作,我需要将 3 张图像发送到 Web 服务器。我不知道快速有效的完美方法。

我有 3 个UIImageView 从相机或相册捕获图像数据。下面,我使用AFNetworking 将 1 张图片发送到 Web 服务器。

NSString *imgPath = [[NSBundle mainBundle]pathForResource:@"Default" ofType:@"png"];
NSData *imgData = UIImagePNGRepresentation([UIImage imageWithContentsOfFile:imgPath]);

NSData *imagVIewData = UIImageJPEGRepresentation(imageView1.image,90);
if (imagVIewData)     
  AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:@"http://myurl.com/xxx.php]];

NSMutableURLRequest *myRequest =  [client multipartFormRequestWithMethod:@"POST" path:Nil parameters:Nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) 

  [formData appendPartWithFileData:imagVIewData name:@"file_upload" fileName:@"123.jpg" mimeType:@"images/jpeg"];
  AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc]initWithRequest:myRequest];
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) 
    NSLog(@"Sent %lld of %lld bytes",totalBytesWritten,totalBytesExpectedToWrite);
       ];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) 

    NSLog(@"upload complete");
 failure:^(AFHTTPRequestOperation *operation, NSError *error) 
    NSLog(@"%@",operation.responseString);

];

NSOperationQueue *queue = [[NSOperationQueue alloc]init];
[queue addOperation:operation];



我需要有人建议从 3 个 UIImageViews 发送 3 个不同的图像。这个程序是否可行,还是我需要通过不同的方法工作?

有什么想法吗?

【问题讨论】:

【参考方案1】:

实际上可以保留您拥有的大部分代码。为什么不尝试将图像的所有 JPEG 表示形式放入一个数组中

NSArray *myArrayOfImages = @[Image1,Image2,Image3]
NSArray *myArrayOfNames = @[strings..]
NSArray *myArrayOfFileNames = @[strings..]

然后在带有块参数的构造体内放这样的东西..

for(int i=0; i < myArrayOfImages.length; i++)    
  NSData *temp = [myArrayOfImages objectAtIndex:i];    
  NSString *tempFile = [myArrayOfNames objectAtIndex:i]    
  NSString *tempFile = [myArrayOfFileNames objectAtIndex:i]    
  [formData appendPartWithFileData:temp name:tempName fileName:tempFile mimeType:@"images/jpeg"];    

您也可以使用字典或任何您想要的数据结构,关键是您只需循环并附加到构造块中。

【讨论】:

非常感谢 Micheal,我今天会试试,我会让你知道我的输出! 没问题!其实我前几天自己都想不通了哈哈!

以上是关于将多个图像发送到 Web 服务器的主要内容,如果未能解决你的问题,请参考以下文章

将图像发送到 Web 服务器并接收信息

如何使用Android的MultipartEntity将多个图像发送到服务器

图像未通过 IOS 中的 POST 方法发送到 PHP Web 服务

在 IONIC 3 中将多个图像发送到服务器的最佳方式

如何一次将多个值发送到 Web 服务器 [关闭]

在android中将多个图像上传到服务器的最快方法