MultipartFile上传文件
时间: 2023-11-01 17:57:40 浏览: 102
MultipartFile是Spring框架中的一个类,用于处理文件上传。它可以用来上传单个文件或多个文件,并可以携带其他参数和请求体。在SpringBoot项目中,使用MultipartFile上传文件的方法如下:
1. 上传单个文件,不包含其他参数:
在Controller层的方法中添加以下代码:
```java
@RestController
@RequestMapping("/test")
public class MultipartFileController {
@PostMapping
public String multipartFileTest(@ApiParam(value = "multipartFile") @RequestParam MultipartFile multipartFile) throws Exception{
File file = new File("E:\\data\\test\\testFile");
multipartFile.transferTo(file);
return file.getAbsolutePath();
}
}
```
2. 上传多个文件,不包含其他参数:
在Controller层的方法中添加以下代码,返回一个JSONObject对象,输出每个文件的大小:
```java
@PostMapping
public JSONObject multipartFileTest(@ApiParam(value = "multipartFile") @RequestParam MultipartFile [] multipartFiles) throws Exception{
JSONObject jsonObject = new JSONObject();
for(int i = 0; i < multipartFiles.length; i++) {
jsonObject.put("file" + i, multipartFiles[i].getSize());
}
return jsonObject;
}
```
3. 复杂场景测试,既包含一个文件,也包含多个文件,同时包含参数和请求体:
在Controller层的方法中添加以下代码:
```java
@PostMapping
public JSONObject multipartFileTest(@ApiParam(value = "multipartFile") @RequestParam MultipartFile [] multipartFiles,
@RequestParam MultipartFile multipartFile,
@RequestParam String paramTest,
@Valid UserDO userDO) throws Exception{
JSONObject jsonObject = new JSONObject();
for(int i = 0; i < multipartFiles.length; i++) {
jsonObject.put("file" + i, multipartFiles[i].getSize());
}
jsonObject.put("user", userDO.toString());
jsonObject.put("paramTest", paramTest);
jsonObject.put("multipartFile", multipartFile.getSize());
return jsonObject;
}
```
阅读全文