2014-06-05 2 views
1

하나의 게시물 요청으로 여러 파일을 내 서버에 업로드하는 방법을 알아 내려고하고 있습니다. this 예를 기반으로, 여기에 내가 지금까지 가지고 올 한 내용은 다음과 같습니다단일 다중 게시물에 여러 파일 업로드

private HttpResponse multiPartPost(File file, String mime, Bitmap thumbnail) throws IOException { 

    MultipartEntityBuilder builder = MultipartEntityBuilder.create(); 
    builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); 
    builder.addBinaryBody("file", file, ContentType.create(mime), audioName); 

    if (thumbnail != null) { 
     ByteArrayOutputStream os = new ByteArrayOutputStream(); 
     thumbnail.compress(Bitmap.CompressFormat.JPEG, 100, os); 
     builder.addBinaryBody("file", os.toByteArray()); 
     os.close(); 
    } 
    builder.addTextBody("workId", workId); 

    HttpPost post = new HttpPost(myURL); 
    post.setEntity(builder.build()); 

    return new DefaultHttpClient().execute(post); 
} 

내 컨트롤러 :

@ResponseBody 
public void saveMediaDetails(@RequestParam(value="file") MultipartFile[] files, 
          @RequestParam(value="workId") int workId, 
          HttpServletRequest request, 
          HttpServletResponse response) { 
    // Stuff 
} 

문제가 files[1]은 항상 비어 있고 난 단지 최초의 진 몸을받을 것입니다. (thumbnail != null) 블록 안에 중단 점을 넣었고 도달했습니다. 내가 여기서 뭘 잘못하고 있는지 모르겠다.

답변

0

두 번째 이진 본문에 콘텐츠 형식 및 파일 이름을 추가하면 문제가 해결됩니다.

builder.addBinaryBody("file", os.toByteArray(), ContentType.create("image/jpeg"), null);