当前位置: 首页 > 知识库问答 >
问题:

不支持带有JSON get'application/octet-stream'错误的OpenApi发送MultipartFile请求

毋宸
2023-03-14

我使用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.发布
  • spring-boot-starter-web
  • Maven
  • spring-boot-starter-data-jpa

共有1个答案

宁浩博
2023-03-14

要发送带有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;
}

使用JSON-GitHub Springdoc openApi的引用-多部分请求

 类似资料:
  • 我的控制器如下所示: 我已经尝试将“consumes”更改为将APPLICATION_OCTET_STREAM_VALUE删除为MULTIPART_FORM_DATA_VALUE,也尝试删除它,但这些都没有帮助。 如果你需要更多的信息,请告诉我。谢了。

  • 我想上传带有spring-boot和vue的文件。但是,我有一个错误“415:Unsupported MediaType”。 这是我的Spring启动控制器。 而且,这是我的vue代码。 我尝试,但遇到同样的错误。我该如何修复它?

  • 问题: 在我的应用程序中,我想通过cordova wkwebview访问图像。超文本标记语言元素如下所示。 加载时,我收到错误“加载资源失败:不支持的URL”。我正在使用iOS 10.2。 验证/尝试的事情: 如果选中文件夹“MyFolder”下的“cordova.file.dataDirectory”中存在的文件列表,我确实看到那里存在“file.jpg”。它的本机URL为文件:///var/m

  • 我有下面的代码(谷歌的凌空库)向我的php服务器发送POST请求并获取信息。我没有在php中检查isset($\u POST['id')就尝试了代码,代码运行良好。当我开始检查时,php将跳过if语句并转到else,这意味着代码没有正确发送参数。我怎样才能解决这个问题? 我还尝试了以下代码: 但是我仍然得到同样的结果。

  • 这是jsp页面中的锚标签调用get url,从这个url我转发到一个post请求Call1 call 1url在控制器中命中一个get请求 转发控制器中的post请求 尝试执行上述操作会返回类似以下错误: 我的尝试是可能的还是失败了

  • 我们正在将(昂首阔步)OpenAPI 3添加到我们的Spring应用程序中, 我们还有Jerseyendpoint(使用路径),从文档中不支持 springdoc openapi支持Jersey吗? 如果您使用的是JAX-RS和as实现Jersey(例如@Path),那么我们不支持它。 我们可以如何公开jerseyendpoint?我们必须转向Spring的,还是有jersey支持或解决方案? 发