千家信息网

SpringMVC如何实现文件上传下载

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容主要讲解"SpringMVC如何实现文件上传下载",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"SpringMVC如何实现文件上传下载"吧!一、通用
千家信息网最后更新 2025年11月08日SpringMVC如何实现文件上传下载

本篇内容主要讲解"SpringMVC如何实现文件上传下载",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"SpringMVC如何实现文件上传下载"吧!

一、通用配置

pom.xml

                                org.springframework            spring-webmvc            5.3.13                                    ch.qos.logback            logback-classic            1.2.3                                    javax.servlet            javax.servlet-api            4.0.1            provided                                    org.thymeleaf            thymeleaf-spring5            3.0.12.RELEASE                                    commons-fileupload            commons-fileupload            1.3.1                                    org.springframework            spring-context            5.3.11                            junit            junit            4.12            test                                    org.springframework            spring-test            5.3.13                                            mysql            mysql-connector-java            8.0.24                                            com.alibaba            druid            1.2.8                                            org.springframework            spring-context            5.3.11                                    javax.servlet            javax.servlet-api            4.0.1            provided                            javax.servlet.jsp            javax.servlet.jsp-api            2.3.3                                    com.fasterxml.jackson.core            jackson-databind            2.12.1                                            commons-fileupload            commons-fileupload            1.3.1            

上传功能的关键jar

web.xml

                        字符集过滤器        characterEncodingFilter        org.springframework.web.filter.CharacterEncodingFilter                    字符集编码            encoding            UTF-8                            forceEncoding            true                            characterEncodingFilter        /*                HiddenHttpMethodFilter        org.springframework.web.filter.HiddenHttpMethodFilter                HiddenHttpMethodFilter        /*                    DispatcherServlet        org.springframework.web.servlet.DispatcherServlet                    contextConfigLocation            classpath:springMVC.xml                1                DispatcherServlet        /    

springMVC.xml

                                                                                                                                                                                                                                                                                                                                                        text/html                application/json                                                

实现页面跳转,vue文件解析,上传内容解析的关键

file.html内容demo

下载1.jpg
头像:

二、实现文件下载,上传功能

package com.vector.controller;import org.springframework.beans.factory.annotation.Value;import org.springframework.http.HttpHeaders;import org.springframework.http.HttpStatus;import org.springframework.http.ResponseEntity;import org.springframework.stereotype.Controller;import org.springframework.util.MultiValueMap;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.multipart.MultipartFile;import javax.annotation.Resource;import javax.servlet.ServletContext;import javax.servlet.http.HttpSession;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.UUID;@Controllerpublic class FileUpAndDownController {    @RequestMapping("/testDown")    public ResponseEntity testResponseEntity(HttpSession session) throws IOException {        //获取ServletContext对象        ServletContext servletContext = session.getServletContext();        //获取服务器中文件的真实路径        String realPath = servletContext.getRealPath("/static/img/1.jpg");        //创建输入流        InputStream is = new FileInputStream(realPath);        //创建字节数组        byte[] bytes = new byte[is.available()];        //将流读到字节数组中        is.read(bytes);        //创建HttpHeaders对象设置响应头信息        MultiValueMap headers = new HttpHeaders();        //设置要下载方式以及下载文件的名字        //Content-Disposition 固定回复内容格式  attachment以附件形式下载  filename=1.jpg文件名        //可以将filename拼接为动态命名        headers.add("Content-Disposition", "attachment;filename=1.jpg");        //设置响应状态码        HttpStatus statusCode = HttpStatus.OK;        //创建ResponseEntity对象        ResponseEntity responseEntity = new ResponseEntity<>(bytes, headers, statusCode);        //关闭输入流        is.close();        return responseEntity;    }    @RequestMapping("/testUp")    public String testUp(@Value("multipartResolver") MultipartFile photo,HttpSession session) throws IOException {        //获取上传的文件的文件名        String fileName = photo.getOriginalFilename();        //处理文件重名问题        //重名问题是java.io中写入同一文件默认覆盖原文件内容导致图片被覆盖.        //获取文件名后缀        String suffixName = fileName.substring(fileName.lastIndexOf("."));        //将UUID作为文件名  uuid是32位随机数,几乎不可能会重复        fileName = UUID.randomUUID().toString() + suffixName;        //获取服务器中photo目录的路径        ServletContext servletContext = session.getServletContext();        String photoPath = servletContext.getRealPath("photo");        File file = new File(photoPath);        //判断服务器是否存在该路径        if(!file.exists()){            file.mkdir();        }        String finalPath = photoPath + File.separator + fileName;        //实现上传功能        photo.transferTo(new File(finalPath));        return "success";    }}

下载功能测试

上传功能测试


到此,相信大家对"SpringMVC如何实现文件上传下载"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

文件 内容 功能 文件名 上传下载 对象 服务器 服务 关键 功能测试 字符 字符集 字节 数组 路径 问题 学习 测试 输入 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 大学计算机软件开发版 石家庄专业制造软件开发 软件开发是一线还是二三线 同程亲和力旅游网络技术专员 化合物核磁数据库 软件测试和软件开发和软运维 三星s8网络安全在哪 北大网络安全学院院长刘新元 数据库学生表年龄 网络安全系统管理制度 集团网络安全攻防战队名称 出门问问软件开发版 软件开发和硬件设计标准的定义 国内工控网络安全标准 阜阳电商软件开发需要多少钱 金融网络安全和信息化工作总结 软件开发企业中程序员辛苦吗 vba复制部分数据库 云计算和网络安全相关的认证 北京编程软件开发中心 石家庄专业制造软件开发 计算机软件指的是软件开发吗 企业储存服务器 奉贤区管理软件开发联系方式 维护公司网络安全的是什么职业 网络安全与校园安全教案 网络技术作战运用前景 数据管理服务器 大学生软件开发学校 华为软件开发实习生
0