2016-07-08 62 views
0

任何人都可以幫助我如何以包含圖像數據的陣列的形式上傳多張照片到服務器。ios objective-c以陣列形式上傳幾張照片到服務器

我做了一些研究,我使用'multipart/form-data',但我很困惑如何使它成爲一個圖像數組。

我想:服務器端的圖片[image_1,image_2,image_3]。

這是我到目前爲止所做的。

if (attachImages.count != 0) { 

    for(int count = 0; count < attachImages.count; count++){ 

     NSLog(@"Body Image count: %d", count); 
     UIImage *image = [attachImages objectAtIndex:count]; 
     NSData *imageData = UIImageJPEGRepresentation(image, 1); 

     [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=%@; filename=picture.jpg\r\n", @"pictures[]"] dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
     [body appendData: imageData]; 
    } 
    //[body appendData:[[NSString stringWithFormat:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
} 

// close form 
[body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 

感謝

+0

請參考: - http://stackoverflow.com/a/31651798/1275530 – Tarun

回答

0

因此,一個好的想法是把影像爲數據URI像這樣

NSData *imageDAta = UIImagePNGRepresentation(image); 
NSString *imageString = [NSString stringWithFormat:@"data:image/png;base64,%@",[imageDAta base64EncodedStringWithOptions:0]]; 

比數據上傳到服務器,這將是最快的方式,因而不需要分段上傳。當圖像擊中你的服務器時,你只需要將URI轉換爲數據,這取決於你使用的語言,可能有幾個包