dru*_*ord 4 java spring file-upload spring-mvc swagger-ui
我将Spring MVC用作休息控制器,并已使用Springfox将Swagger-ui与控制器集成在一起。我想拥有一种能够通过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
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了几乎所有内容,但无法显示文件上传按钮。但是,如果我这样做:
@RestController
public class Controller{
@RequestMapping(value="/upload", method=RequestMethod.POST)
public void uploadFile(@RequestParam Long id,
@RequestPart File file){
//do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
出现文件上传按钮,但是在尝试上传文件时,它始终抛出HTTP代码415。此外,我需要输入的是MultipartFile,而不是常规文件。即使我将@RequestPart注释与Multipart File一起使用,也没有出现选择要上传的文件按钮。我如何使它工作???甚至:
@RestController
public class Controller{
@RequestMapping(value="/upload", method=RequestMethod.POST)
public void uploadFile(@RequestPart String metaData,
@RequestPart MultipartFile file){
//do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
不行 如果有人可以逐步介绍如何使此按钮出现在MultipartFile中?我将永远感激不已
abe*_*tig 11
我认为您在第二个代码段中缺少@RequestMapping的消耗属性。看下面的例子
@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<>();
}
Run Code Online (Sandbox Code Playgroud)
Ben*_*val 10
用
@RequestPart(required = true) MultipartFile file
并且使用2.1.0或最新版本号,之前的版本有bug。
https://github.com/springfox/springfox/issues/786
小智 10
尝试对 MultipartFile 使用 @RequestPart 而不是 @RequestParam
@RestController
public class controller {
@RequestMapping(value="/upload", method=RequestMethod.POST)
public void uploadFile(@RequestParam Long id,
@RequestPart MultipartFile file) {
//do some stuff
}
}
Run Code Online (Sandbox Code Playgroud)
在我的情况下,我需要做两件事
Run Code Online (Sandbox Code Playgroud)@RequestParam("file") MultipartFile file
Run Code Online (Sandbox Code Playgroud)@Bean(name = "multipartResolver") public CommonsMultipartResolver commonsMultipartResolver(){ return new CommonsMultipartResolver(); }
小智 6
两件事情...
消耗的价值应该是"multipart/form-data"
。consumes="multipart/form-data"
@RequestPart("file") @ApiParam(value="File", required=true) MultipartFile file
归档时间: |
|
查看次数: |
12971 次 |
最近记录: |