OpenApi使用JSON发送MultipartFile请求不支持'application / octet-stream'错误

问题描述

我正在使用Spring Boot,我想使用Swagger UI将带有json的MultipartFile发送给我,但是如果我使用Postman的情况很好的话,我会收到错误'application/octet-stream' error not supported

@RequestMapping(value = "/upload",method = RequestMethod.POST,produces = { "application/json" },consumes = { "multipart/form-data" })
public String hello(
   @RequestPart(value = "file") MultipartFile file,@RequestPart("grupo") Grupo grupo) {
      if (file != null) {
        logger.info("File name:  " + file.getOriginalFilename());
      }
      logger.info(grupo.toString());
   return grupo.toString();
 }

该如何解决?

  • springdoc-openapi-ui 1.4.4
  • Spring Boot 2.3.2发布
  • spring-boot-starter-web
  • 行家
  • spring-boot-starter-data-jpa

解决方法

要发送带有multipartFile的json,请使用类型为@Parameter且格式为"string"的注释"binary",以便您可以发送格式为json的文件。

@Parameter(schema =@Schema(type = "string",format = "binary"))

然后就是这样。

@PostMapping(value = "/test",consumes = MediaType.MULTIPART_FORM_DATA_VALUE )
public ResponseEntity<Void> saveDocu2ment(
        @RequestPart(value = "personDTO") @Parameter(schema =@Schema(type = "string",format = "binary")) final PersonDTO personDTO,@RequestPart(value = "file")  final MultipartFile file) {
    return null;
}

参考-Multipart Request with JSON - GitHub Springdoc openApi

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...