这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战 从前端页面传回来的可不仅仅就是简单的数据,也有可能是文件,这篇文章演示了,怎么样获取文件,并把他存储在库中
首先我们创建一个controller
@PostMapping("/upload")
public void upload(@RequestPart("herderImg")MultipartFile herderImg,
@RequestPart("photos") MultipartFile[] photo){
log.info("上传信息:herderImg={},photos={}",herderImg.getSize(),photo.length);
}
复制代码
我们上传文件使用的注解和之前是不一样的,@RequestPart是用来传文件的,我们进行一个简单的测试,我们还是使用Postman测试
我们可以在我们的键值中选择是文本还是文件类型,再从我们的电脑上选择文件
我们查看打印日志信息
我们就不把文件存到数据库或者服务器里,我们就直接存到电脑里
@SneakyThrows
@PostMapping("/upload")
public void upload(@RequestPart("herderImg")MultipartFile herderImg,
@RequestPart("photos") MultipartFile[] photo){
log.info("上传信息:herderImg={},photos={}",herderImg.getSize(),photo.length);
if (!herderImg.isEmpty()) {
String originalFilename = herderImg.getOriginalFilename();
herderImg.transferTo(new File("E:\test\"+originalFilename));
}
if (photo.length>0) {
for (MultipartFile p:photo){
if(!p.isEmpty()){
String name = p.getName();
p.transferTo(new File("E:\test\pp\"+name));
}
}
}
复制代码
我们先判断是否为空,在进行存储
测试后,我们的文件就已经传入进来,这时候我们就可能会遇到一个问题,就是我们文件上传的时候,如果我们的文件过大,可能会受到限制,这是和我们的自动文件解析器有关,我们ctrl+shift+n搜索所有MultipartAutoConfiguraties
所有的东西都会封装到这里
有我们的最大下载量和最大请求量,我们如果需要修改的话,再在我们的配置文件中
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=100MB
复制代码
这样我们就可以改变我们的下载和上传量了。