【问题标题】:Uploading multiple files in single multipart post在单个多部分帖子中上传多个文件
【发布时间】:2014-06-05 20:23:48
【问题描述】:

我试图弄清楚如何在一个发布请求中将多个文件上传到我的服务器。基于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) 块内放置了一个断点,它确实到达了。不知道我在这里做错了什么。

【问题讨论】:

    标签: android spring spring-mvc multipartform-data


    【解决方案1】:

    向第二个二进制正文添加内容类型和文件名解决了问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-25
      • 2021-11-18
      • 2016-04-14
      • 1970-01-01
      • 2015-09-14
      • 2020-01-17
      • 1970-01-01
      • 2019-12-23
      相关资源
      最近更新 更多