最后
每年转战互联网行业的人很多,说白了也是冲着高薪去的,不管你是即将步入这个行业还是想转行,学习是必不可少的。作为一个Java开发,学习成了日常生活的一部分,不学习你就会被这个行业淘汰,这也是这个行业残酷的现实。
如果你对Java感兴趣,想要转行改变自己,那就要趁着机遇行动起来。或许,这份限量版的Java零基础宝典能够对你有所帮助。
我们这里采用StandardServletMultipartResolver处理器来上传文件:
1、添加依赖
org.springframework.boot
spring-boot-starter-thymeleaf
2、配置
#⽀持的最⼤⽂件
spring.servlet.multipart.max-file-size=100MB
#⽂件请求最⼤限制
spring.servlet.multipart.max-request-size=100MB
除了这两个配置之外常用的配置:
-
spring.servlet.multipart.enabled=true,是否⽀持 multipart 上传⽂件
-
spring.servlet.multipart.file-size-threshold=0,⽀持⽂件写⼊磁盘
-
spring.servlet.multipart.location=,上传⽂件的临时⽬录
-
spring.servlet.multipart.max-file-size=10Mb,最⼤⽀持⽂件⼤⼩
-
spring.servlet.multipart.max-request-sizee=10Mb,最⼤⽀持请求⼤⼩
-
spring.servlet.multipart.resolve-lazily=false,是否⽀持 multipart 上传⽂件时懒加载
3、上传单个文件
可以用SpringBoot默认的thymeleaf模板,这里就只写后端的接口。
同样地,偷了下懒,异常处理和结果封装都没有写……
/**
-
上传单个文件
-
@param file
-
@param redirectAttributes
-
@return
*/
@PostMapping(“/upload”)
public String singleFileUpload(@RequestParam(“file”) MultipartFile file, RedirectAttributes redirectAttributes) {
//文件非空判断
if (file.isEmpty()) {
redirectAttributes.addFlashAttribute(“message”, “请选择一个文件”);
return “文件为空,请重新上传”;
}
try {
// Get the file and save it somewhere
byte[] bytes = file.getBytes();
// UPLOADED_FOLDER ⽂件本地存储地址
Path path = Paths.get(UPLOADED_FOLDER + file.getOriginalFilename());
//保存文件
Files.write(path, bytes);
} catch (IOException e) {
e.printStackTrace();
}
return “上传文件成功!”;
}
用PostMan测试:
4、上传多个文件
稍作修改,MultipartFile 需要修改为按照数组的⽅式去接收。
/**
-
上传多个文件
-
@param files
-
@param redirectAttributes
-
@return
*/
@PostMapping(“/uploadMore”)
public String moreFileUpload(@RequestParam(“file”) MultipartFile[] files,
RedirectAttributes redirectAttributes) {
if (files.length == 0) {
return “文件不能为空,请选择一个文件!”;
}
for (MultipartFile file : files) {
try {
byte[] bytes = file.getBytes();
Path path = Paths.get(UPLOADED_FOLDER + file.getOriginalFilename());
Files.write(path, bytes);
} catch (IOException e) {
e.printStackTrace();
}
}
return “所有文件上传成功!”;
}
用PostMan测试:
5、文件下载
/**
-
下载文件
-
@param response
-
@param fileName
-
@return
线程、数据库、算法、JVM、分布式、微服务、框架、Spring相关知识
一线互联网P7面试集锦+各种大厂面试集锦
学习笔记以及面试真题解析
学习笔记以及面试真题解析
[外链图片转存中…(img-cltMXLJK-1715008898879)]