纵有疾风起
人生不言弃

java入门006~springboot实现多文件的上传(java多文件的上传)

本节内容是建立在上一节内容的基础上,如果没有看上节内容,请查看上一节内容《springboot实现单个文件上传(图片 文档 视频 音频都可以上传)》

准备工作

  1. 开发工具:IntelliJ idea(需要破解,前面章节有讲)

  2. 创建一个springboot项目(前面章节有讲)

  3. 创建一个用来上传文件的html文件

  4. 创建一个用来接收文件的controller

一,创建uploads.html用来选择多个文件

先来看下上一节的upload.html单文件上传的页面

java入门006~springboot实现多文件的上传(java多文件的上传)插图
image

再来看下本节的uploads.html多文件上传的页面

java入门006~springboot实现多文件的上传(java多文件的上传)插图(1)
image

对比下可以看到,多文件上传只需要多一个 multiple=”multiple” 属性就可以了

下面贴出来uploads.html 完整代码

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>上传多个文件到服务器</title></head><body><form action="/uploads" method="post" enctype="multipart/form-data">    <input type="file" name="uploadFiles" value="请选择文件" multiple="multiple" >    <input type="submit" value="上传"></form></body></html> 

二,定义接收多文件的controller文件

java入门006~springboot实现多文件的上传(java多文件的上传)插图(2)
image

可以看出,我们就在上一节单文件上传的UploadController里添加了一个多文件上传的uploads方法

完整代码给大家贴出来

/** * Created by qcl on 2019-06-11 * desc: 文件上传 */@RestControllerpublic class UploadController {    //单个文件的上传    @PostMapping("/upload")    public String upload(MultipartFile uploadFile, HttpServletRequest request) {        /*         定义文件的存储路径,如下,是在linux和mac上定义的文件路径        /private/var/folders/8x/4zvnbqmj1w33cqmzrpygzbth0000gn/T/tomcat-docbase.5206733816001100271.8080/uploadFile         */        String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/");        File dir = new File(realPath);        if (!dir.isDirectory()) {//文件目录不存在,就创建一个            dir.mkdirs();        }        try {            String filename = uploadFile.getOriginalFilename();            //服务端保存的文件对象            File fileServer = new File(dir, filename);            System.out.println("file文件真实路径:" + fileServer.getAbsolutePath());            //2,实现上传            uploadFile.transferTo(fileServer);            String filePath = request.getScheme() + "://" +                    request.getServerName() + ":"                    + request.getServerPort()                    + "/uploadFile/" + filename;            //3,返回可供访问的网络路径            return filePath;        } catch (IOException e) {            e.printStackTrace();        }        return "上传失败";    }    //多个文件的上传    @PostMapping("/uploads")    public String uploads(MultipartFile[] uploadFiles, HttpServletRequest request) {        //1,对文件数组做判空操作        if (uploadFiles == null || uploadFiles.length < 1) {            return "文件不能为空";        }        //2,定义文件的存储路径,        String realPath = request.getSession().getServletContext().getRealPath("/uploadFile/");        File dir = new File(realPath);        if (!dir.isDirectory()) {//文件目录不存在,就创建一个            dir.mkdirs();        }        try {            String filePathS = "";            //3,遍历文件数组,一个个上传            for (int i = 0; i < uploadFiles.length; i++) {                MultipartFile uploadFile = uploadFiles[i];                String filename = uploadFile.getOriginalFilename();                //服务端保存的文件对象                File fileServer = new File(dir, filename);                System.out.println("file文件真实路径:" + fileServer.getAbsolutePath());                //2,实现上传                uploadFile.transferTo(fileServer);                String filePath = request.getScheme() + "://" +                        request.getServerName() + ":"                        + request.getServerPort()                        + "/uploadFile/" + filename;                filePathS = filePathS + "\n" + filePath;            }            //4,返回可供访问的网络路径            return filePathS;        } catch (IOException e) {            e.printStackTrace();        }        return "上传失败";    }}

​到这里我们多文件上传的代码就全部实现了。

三,启动项目(三种方式~推荐第一种)

1,点击绿色箭头(最简便,提倡)

java入门006~springboot实现多文件的上传(java多文件的上传)插图(3)
image

2,点击main方法前的绿色箭头

java入门006~springboot实现多文件的上传(java多文件的上传)插图(4)
image

3,命令行输入 mvn spring-boot:run

java入门006~springboot实现多文件的上传(java多文件的上传)插图(5)
image

四,验证

1,输入下图的链接,进入文件选择页

java入门006~springboot实现多文件的上传(java多文件的上传)插图(6)
image

2,选择多个文件,我们这里选择3个图片,一个视频

java入门006~springboot实现多文件的上传(java多文件的上传)插图(7)
image
java入门006~springboot实现多文件的上传(java多文件的上传)插图(8)
image

3,点击上传,然后上传成功如下图

java入门006~springboot实现多文件的上传(java多文件的上传)插图(9)
image

4,查看图片,可以通过上图的链接查看已经传到后台的图片

java入门006~springboot实现多文件的上传(java多文件的上传)插图(10)
image

5,查看视频(这样就可以在线查看已经上传到服务器的视频了)

java入门006~springboot实现多文件的上传(java多文件的上传)插图(11)
image

到这里,我们多个文件的上传也成功的实现了。

视频讲解地址:https://edu.csdn.net/course/detail/23443

源码地址:https://github.com/qiushi123/springboot-demos

往期回顾

文章转载于:https://www.jianshu.com/p/52175a3216c0

原著是一个有趣的人,若有侵权,请通知删除

未经允许不得转载:起风网 » java入门006~springboot实现多文件的上传(java多文件的上传)

分享到: 生成海报
avatar

评论 抢沙发

评论前必须登录!

立即登录   注册

切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活