千家信息网

SpringBoot如何实现单文件与多文件上传功能

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,这篇文章将为大家详细讲解有关SpringBoot如何实现单文件与多文件上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.单文件上传首先创建一个Spring
千家信息网最后更新 2024年11月30日SpringBoot如何实现单文件与多文件上传功能

这篇文章将为大家详细讲解有关SpringBoot如何实现单文件与多文件上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1.单文件上传

首先创建一个Spring Boot项目,并添加spring-boot-starter-web依赖

然后创建一个upload.jsp文件,做一个简单的文件上传页面,具体代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    Title    

上传接口是wjsc/upload,注意请求方法是postenctypemultipart/form-data

然后创建上传文件接口:

@RequestMapping("/wjsc")@RestControllerpublic class UploadController {    /**     * 文件上传     */    @PostMapping("/upload")    //MultipartFile接受前台传过来的文件    public String upload(MultipartFile uploadFile,HttpServletRequest req){        SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");        //设置上传文件的保存路径为项目运行目录下的uploadFile文件夹        String realPath = req.getSession().getServletContext().getRealPath("/uploadFile/");        //获取当前日期对所上传的文件进行归类保存        String format = sdf.format(new Date());        File folder = new File(realPath+format);        if (!folder.isDirectory()){//判断是否为目录            folder.mkdirs();//不是目录就创建目录        }        //给上传的文件重命名        String oldName = uploadFile.getOriginalFilename();//获取文件名称        String newName = UUID.randomUUID().toString()+oldName.substring(oldName.lastIndexOf("."),oldName.length());//设置新文件名        try{            //文件保存操作            uploadFile.transferTo(new File(folder,newName));            //生成文件访问路径            String filePath = req.getScheme()+"://"+req.getServerName()+":"+req.getServerPort()+"/uploadFile/"+format+newName;            return filePath;        }catch (Exception e){            e.printStackTrace();        }        return "上传失败";     }}

注意:MultipartFile变量名命名要与jsp中上传文件的name一致,不然会接收不到文件

最后测试:

运行项目,在浏览器中访问upload.jsp页面进行文件上传

上传成功后会返回文件访问路径,用这个路径就可以访问到刚刚上传的图片

项目中也可以看到刚刚上传的图片成功了

至此,一个简单的单文件上传就完成了.

2.多文件上传

多文件上传和单文件上传基本一致,首先修改jsp文件,代码如下:

<

%@ page contentType="text/html;charset=UTF-8" language="java" %>    Title    

然后修改上传文件接口:

/**     * 多文件上传     */    @PostMapping("/uploads")    public String uploads(MultipartFile[] uploadFiles,HttpServletRequest req) {        //遍历uploadFiles数组分别储存    }

控制器里边的核心逻辑和单文件上传是一样的,只是多一个遍历的步骤。

关于"SpringBoot如何实现单文件与多文件上传功能"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0