欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

我的springboot学习之实现多个文件的上传

程序员文章站 2022-05-30 20:33:35
...

因为昨天学了单文件上传,小可爱就心想了一个事儿,

万一我以后有多个文件上传,怎么办呢?

于是,今天又去学了多文件上传...

这次呢,在上次的单文件上传,我找到了灵感~

我的springboot学习之实现多个文件的上传

多个文件上传肯定是得有界面给用户上传的,至于界面就是加多一个form表单的事情,

至于后台怎么实现,宝宝想到了一个方法,

提取上传文件方法为公共方法,再添加一个上传文件集合,将上传的文件收集起来,

然后,你懂的,哈哈哈...

 

第一步:修改index.jsp

页面肯定得有多个文件上传的样子,不然用户怎么选择多个文件?

在index.jsp再添加多一个表单,标注为多文件上传使用的~

多个文件上传:
<form action="/uploads" method="post" enctype="multipart/form-data">
    文件1:<input type="file" name="file"/><br/>
    文件2:<input type="file" name="file"/><br/>
    文件3:<input type="file" name="file"/><br/>
    <input type="submit" value="上传多个文件"/>
</form>

 

第二步:提取上传方法为公共方法

/**
     * 提取上传方法为公共方法
     * @param uploadDir 上传文件目录
     * @param file 上传对象
     * @throws Exception
     */
    private void executeUpload(String uploadDir,MultipartFile file) throws Exception
    {
        //文件后缀名
        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        //上传文件名
        String filename = UUID.randomUUID() + suffix;
        //服务器端保存的文件对象
        File serverFile = new File(uploadDir + filename);
        //将上传的文件写入到服务器端文件内
        file.transferTo(serverFile);
    }

 

第三步:在UploadController控制器添加/uploads方法

   /**
     * 上传多个文件
     * @param request 请求对象
     * @param file 上传文件集合
     * @return
     */
    @RequestMapping(value = "/uploads",method = RequestMethod.POST)
    public @ResponseBody String uploads(HttpServletRequest request,MultipartFile[] file)
    {
        try {
            //上传目录地址
            String uploadDir = request.getSession().getServletContext().getRealPath("/") +"upload/";
            //如果目录不存在,自动创建文件夹
            File dir = new File(uploadDir);
            if(!dir.exists())
            {
                dir.mkdir();
            }
            //遍历文件数组执行上传
            for (int i =0;i<file.length;i++) {
                if(file[i] != null) {
                    //调用上传方法
                    executeUpload(uploadDir, file[i]);
                }
            }
        }catch (Exception e)
        {
            //打印错误堆栈信息
            e.printStackTrace();
            return "上传失败";
        }
        return "上传成功";
    }

 

第四步:测试方法是否实现

我的springboot学习之实现多个文件的上传

我的springboot学习之实现多个文件的上传

我的springboot学习之实现多个文件的上传

我的springboot学习之实现多个文件的上传

 

成功了,看到没,我的小可爱们~

 

我的springboot学习之实现多个文件的上传

是不是很棒棒哦,我的小可爱们~

 

如果我们上传一个大文件,如何修改SpringBoot的最大上传限制呢?

我的springboot学习之实现多个文件的上传

 

开application.properties配置文件,

加入spring.http.multipart.max-file-size以及spring.http.multipart.max-request-size配置信息

spring.http.multipart.max-file-size=1024Mb
spring.http.multipart.max-request-size=2048Mb

是不是很简单呢,小可爱快来试试吧~

相关标签: 多文件上传