【问题标题】:Webservice object and multipartWebservice 对象和多部分
【发布时间】:2017-04-10 16:20:54
【问题描述】:

我想为参数、一个 object 用户和另一个 multipart 创建一个 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"
}

【问题讨论】:

  • 你需要第一个参数@RequestHeader。你能删除并试一试吗
  • @CrazyMac 同样的错误
  • 那么你从前端推送文件的方式可能是错误的。您如何从前端调用此服务以及如何传递文件参数
  • @CrazyMac 我正在使用 swagger 但对于用户但对于用户并没有检测到它的 json 我认为
  • 您是否正确构建了您的多部分请求?在此处查看 Mozilla 教程,您是否缺少边界或其他内容? developer.mozilla.org/en-US/docs/Learn/HTML/Forms/…

标签: spring-boot request multipart


【解决方案1】:

在您的 java 配置中添加以下 bean

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

【讨论】:

  • 它有帮助!但不要忘记在依赖项中添加commons-fileuploadmaxUploadSize 不是强制性的。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    你需要一个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
    /***
    
    }
    

    祝你好运..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-19
      相关资源
      最近更新 更多