Web服务对象和多部分

时间:2017-04-10 16:20:54

标签: spring-boot request multipart

我想通过param,一个对象用户和另一个多部分来创建一个web服务来接收文件。

@RequestMapping(value = "/signUpOrUpdateAvatar", method = RequestMethod.PUT, headers = "content-type=multipart/form-data")
    public User signUpAvatar(@RequestHeader HttpHeaders header,  @RequestPart("user")  User user,
            @RequestPart("file") MultipartFile file) throws LogicBusinessException {
        logger.info(Thread.currentThread().getStackTrace()[1].getMethodName()); 
        //TODO call others methods
        return userRet;
    }

当我尝试给我这个错误时:

    {
  "timestamp": 1492500929835,
  "status": 400,
  "error": "Bad Request",
  "exception": "org.springframework.web.multipart.support.MissingServletRequestPartException",
  "message": "Required request part 'file' is not present",
  "path": "/signUpOrUpdateAvatar2"
}

swagger

3 个答案:

答案 0 :(得分:2)

在java配置中添加以下bean

@Bean
public CommonsMultipartResolver multipartResolver() {
    CommonsMultipartResolver cmr = new CommonsMultipartResolver();
    cmr.setMaxUploadSize(10000000);
    return cmr;
}

答案 1 :(得分:0)

您可能正在尝试通过其他线程获取文件数据。尝试使用具有@MultipartConfig完整注释的相同线程,并在@Bean中使用StandardServletMultipartResolver而不是CommonsMultipartResolver。

答案 2 :(得分:0)

你需要一个rest API,它接受两个参数,其中一个是多部分对象,另一个是一些参数。我已经实施了Rest服务,可能满足您的需求。

@RequestMapping(value = "/upload", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA)
    public URL uploadFileHandler(@RequestParam("name") String name,
                                 @RequestParam("file") MultipartFile file) throws IOException {
/***
//Your business logic
/***

}

祝你好运..