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

标签 spring-boot maven swagger swagger-ui openapi

我正在使用 Spring Boot,我想使用 Swagger UI 发送带有 json 的 MultipartFile 但我收到错误 'application/octet-stream' error not supported ,如果我使用 postman 工作得很好。

@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.RELEASE
  • spring-boot-starter-web
  • Maven
  • 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

    关于spring-boot - OpenApi 使用 JSON 发送 MultipartFile 请求获取 'application/octet-stream' 错误不支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63367971/

    相关文章:

    Spring Data Neo4j @Query 不返回子节点

    postgresql - Postgres 异常错误 : syntax error at or near ":" Position: 46

    java - Spring Data Rest - 当 @HandleBeforeSave 中发生运行时异常时事务未回滚?

    java - BeanPostProcessor 不为 @Bean 方法调用 Spring Java Config

    java - 在 Java 程序中从 Maven 存储库下载 Artifact

    带有两个冲突版本的 javax.servlet.servlet-api jar 的 java.lang.SecurityException

    c# - Action 需要 Swagger 的独特方法/路径组合

    java - Gremlin.sh 错误线程 "main"java.lang.NoClassDefFoundError : org/fusesource/jansi/AnsiRenderWriter 中出现异常

    c# - 如何将swagger导入带环境的 postman ?

    c# - 如何使用 NSwag 的 UseSwaggerUi3 加载自定义样式表