gpt4 book ai didi

java - 使用 Springfox 和 Swagger-ui 的多部分文件上传

转载 作者:搜寻专家 更新时间:2023-11-01 01:20:59 25 4
gpt4 key购买 nike

我正在使用 Spring MVC 作为休息 Controller ,并且我已经使用 Springfox 将 Swagger-ui 与我的 Controller 集成在一起。我想要一种能够通过 Swagger-ui 界面上传文件的方法。我只需要两个参数,一个对象 ID 和要上传的文件的长效。

@RestController
public class controller{
@RequestMapping(value="/upload", method=RequestMethod.POST)
public void uploadFile(@RequestParam Long id,
@RequestParam MultipartFile file){
//do some stuff
}
}

我几乎尝试了所有方法,但无法显示文件上传按钮。但是,如果我这样做:

@RestController
public class Controller{
@RequestMapping(value="/upload", method=RequestMethod.POST)
public void uploadFile(@RequestParam Long id,
@RequestPart File file){
//do some stuff
}
}

出现文件上传按钮,但在尝试上传文件时总是抛出 http 代码 415。此外,我需要输入为 MultipartFile,而不是常规文件。即使我将 @RequestPart 批注与多部分文件一起使用,也不会出现选择要上传的文件按钮。我怎样才能让它工作????甚至:

@RestController
public class Controller{
@RequestMapping(value="/upload", method=RequestMethod.POST)
public void uploadFile(@RequestPart String metaData,
@RequestPart MultipartFile file){
//do some stuff
}
}

不会工作。如果有人可以演练如何让这个按钮出现在 MultipartFile 中?我将永远感激不已。

最佳答案

我认为您在第二个代码段中缺少 @RequestMappingconsumes 属性。看下面的例子

@RequestMapping(
path = "/upload",
method = RequestMethod.POST,
consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public ResponseEntity<String> handleUpload(
@RequestPart("file") MultipartFile file,
@RequestParam("someId") Long someId,
@RequestParam("someOtherId") Long someOtherId) {
return new ResponseEntity<>();
}

关于java - 使用 Springfox 和 Swagger-ui 的多部分文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com