2013-04-11 4 views
1

하나의 요청으로 여러 이미지를 업로드하고 싶습니다. 단일 이미지 데이터를 전송할 때 작동하도록 만듭니다. 서버 측에서AFNetworking을 사용하여 하나의 요청으로 여러 이미지 업로드

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseUrl: my_url ]; 

NSMutableRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:nil 
parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { 
    [formData appendPartWithFileData: my_imageData name:@"image" fileName: @"myImage.jpg" mimeType:@"image/jpeg"]; 
}]; 

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest: request]; 

[operation start]; 

, 나는 스프링 MVC를 사용 : 여기에 하나의 이미지 데이터를 전송하는 내 코드입니다.

@RequestMapping(value="/test-multiple-upload/{collateralid}", method = RequestMethod.POST) 
public @ResponseBody String multipartfilesUpload(
     @PathVariable("collateralid") Long collId, 
     @RequestParam("images[]") CommonsMultipartFile[] images) { 

    //proccess the image data. save to local or to DB 


    return "uploaded successful"; 
} 

내 질문에 여러 이미지 AFNetworking를 사용하여 multipartForm 요청을하는 방법입니다 : 이것은 여러 이미지가 포함 된 요청을 수신 할 웹 서비스/종료 지점입니다.

답변

4

첨부 된 데이터와 동일한 이름을 사용하면 데이터가 서버 측에서 배열로 생성된다는 것을 알았습니다. 따라서 : imageData의 모든 고려

NSArray *imageArray; 
AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseUrl: my_url ]; 

NSMutableRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:nil 
parameters:nil constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { 
     for(UIImage *img in imageArray) 
     { 
      [formData appendPartWithFileData: my_imageData name:@"image" fileName:@"myImage.jpg" mimeType:@"image/jpeg"]; 
     } 
}]; 

AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest: request]; 

[operation start]; 

은 " 영상"과 동일한 이름 태그 폼 데이터 다중 요청에 첨부된다. 서버 쪽에서는 배열로 처리됩니다. "CommonsMultipartFile [] image".

관련 문제