SpringBoot文件上传

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
public static final String FILE_NAME = "C:\\Users\\mayn\\Desktop\\";
public static final String FILE_PATH_NAME = "C:\\Users\\mayn\\Desktop\\springbootest\\src\\main\\resources\\";

// 读取请求中的文件并保存
// 同一文件只上传一次
// @RequestGetParam
@RequestMapping("/fileGet")
public void fileGet(HttpServletResponse response, HttpServletRequest request, @RequestParam(value = "file") MultipartFile file) {
try {
String filename = file.getOriginalFilename();
FileReader fileReader = new FileReader(FILE_NAME + filename);
try {
BufferedReader reader = new BufferedReader(fileReader);
String neirong = null;
String lineTxt = null;
while ((lineTxt = reader.readLine()) != null) {
lineTxt += '\n';
neirong += lineTxt;
}
System.out.print(neirong);
// 保存文件
file.transferTo(new File(FILE_PATH_NAME + filename));
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}



// 批量上传文件
// MultipartFile[] files设置为数组即可
@RequestMapping("/fileAllGet")
public void fileAllGet(HttpServletResponse response, HttpServletRequest request, @RequestParam("files") MultipartFile[] files, @RequestParam(value = "msg", required = false) String msg) {
System.out.println(files);
System.out.println(msg);
for (MultipartFile file : files) {
fileGet(response, request, file, msg);
}
}

需要注意的是,使用PostMan测试时,如果Post提交方式为form-data,那么无需设置Content-Type,因为浏览器会自动帮你添加上,如果非要手动添加的话,记得不只是添加multipart/form-data,还需要设置boundary

赏个🍗吧
0%