SpringMVC之通过最简单的方法实现多文件上传(提供一种模板,可以在这种方法的基础上进行各种的改良)

                     心情愉悦,心情才是良药

 

 

 

上一篇博客主要介绍的SpringMVC中单文件进行上传的两种方法单文件上传的两种方法

单文件上传的方法我们解决了,那如何如何实现多文件进行上传输出呢?
这篇文章主要实现的方法就是通过数组的方法来实现多文件的上传
注意本篇文章的大部分内容与上一篇文章有很多相同的代码,在这篇文章就不过多进行介绍了,如果有疑惑的地方,可以到我的主页SpringMVC专栏去了解以下疑惑的地方。


多文件上传

一:创建网页文件,实现上传多个文件的功能

<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2022/11/11
  Time: 17:32
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form  action="/myc" method="post" enctype="multipart/form-data">
    <input type="file" name="files" multiple>  <!--单个文件上传是没有参数:multiple:可以实现多文件进行上传-->
    <input type="submit" value="提交">
</form>
</body>
</html>

第二:创建SpringMVC框架的控制器

package fileupload_demo1;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.UUID;


//代码实现多文件进行上传,通过数组的方式实现
@Controller
public class CT2 {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("/yyyy/MM/dd/");
    @RequestMapping("/myc")
    @ResponseBody
//定义文件类型为数组,接收前端传来的多个文件,并报存在数组中
    public String play1(MultipartFile[] files, HttpServletRequest req) throws IOException {
        String format = simpleDateFormat.format(new Date());  //获取今天的日期
        String realpath = req.getServletContext().getRealPath("/img") +format; //获取Tomcat中的临时储存文件
        File folder = new File(realpath);
        if(!folder.exists()){   //检查目录是否存在
            folder.mkdirs();    //目录不存在进行创建
        }
        String[] demo1 = new String[files.length]; //定义一个新的数组,获取各个文件的url
        int i=0;
        for(MultipartFile file:files){    //遍历数组中的文件
        String oldname = file.getOriginalFilename(); //得到上传时的文件名
        String name = UUID.randomUUID().toString()+oldname.substring(oldname.lastIndexOf(".")); //UUID.randomUUID().toString():Java中自动生成主键的方法,机器中生成的一串生成数字
        file.transferTo(new File(folder,name)); //将前端传来的数据保存指定名字保存在指定文件夹下
        String url = req.getScheme()+ "://"+req.getServerName() +":"+req.getServerPort() +"/img" +format +name;
            System.out.println(url);
        demo1[i] = url;    //将获取的url添加到创建的数组中
        i++;
        //http://localhost:8080/img/2022/11/13/8d3910d1-2a7c-47ce-8251-3cc4eeaf0bc4.jpeg
    }return Arrays.toString(demo1);  //遍历输出存着url中的数组
    }
}

关于SpringMVC的配置文件和需要的各种依赖以及web.xml中的各种配置,可以到前面链接中文章去了解

 

执行项目:

795a562fb7fc409aa6c84a22e8b9369d.png

 选中三个文件,点击提交

 

网页跳转,遍历方法输出三个文件的URL

eac330616d4d48128fbcd06dae48b4c4.png

输入网页可以查看,已上传的文件

d69f4a7213ac474699b4e9c4fc6f4505.png

 

 文件上传成功

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不想睡醒的梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值