SpringBoot的文件操作

这是我参与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
复制代码

这样我们就可以改变我们的下载和上传量了。

Guess you like

Origin juejin.im/post/7032660672982810631