news 2026/6/10 18:26:27

【SpringMVC】实现文件上传

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【SpringMVC】实现文件上传

SpringMVC的入门案例,创建 MavenJavaWeb 工程,在 pom 文件中引入开发的jar包,具体的坐标如下

<properties> <spring.version>5.0.2.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> </dependencies>

额外导入文件上传的jar包

<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency>

前端内容

<h3>文件上传</h3> <form action="/fileupload.do" method="post" enctype="multipart/form-data"> 选择文件:<input type="file" name="upload" /><br/> <input type="submit" value="上传" /> </form>

springmvc.xml 中配置文件解析器对象
SpringMVC 提供的文件上传的工具类MultipartResolver以及设置上传文件的总大小

<!--配置文件上传的解析器组件--> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--设置上传文件的总大小 8M = 8 * 1024 * 1024 --> <property name="maxUploadSize" value="8388608" /> </bean>

SpringMVC框架提供了MultipartFile对象,该对象表示上传的文件,要求变量名称必须和表单file标签的name属性名称相同

@Controller @RequestMapping("/upload") public class UploadController { /** * 文件上传 * MultipartFile upload 文件上传解析器对象解析request后,文件上传对象 * @return */ @RequestMapping("/fileupload.do") public String upload(MultipartFile upload, HttpServletRequest request) throws IOException { // 把文件上传到哪个位置 String realPath = request.getSession().getServletContext().getRealPath("/uploads"); // 打印文件夹路径 System.out.println("文件保存的根目录:" + realPath); // 创建该文件夹 File file = new File(realPath); // 判断该文件夹是否存在 if(!file.exists()){ // 创建文件夹 file.mkdirs(); } // 获取到上传文件的名称 String filename = upload.getOriginalFilename(); // 把文件的名称修改成为一的值 sdfs-csdf-fwer-sdfw String uuid = UUID.randomUUID().toString().replace("-", "").toUpperCase(); // 唯一的值 filename = uuid+"_"+filename; System.out.println("文件名称:"+filename); // 上传文件 upload.transferTo(new File(file,filename)); return "suc"; } }

实现了基于Spring框架的简单文件上传功能,首先在Spring配置中定义了id为multipartResolver的CommonsMultipartResolver组件,用于解析文件上传请求,并设置上传文件总大小限制为8M;前端则是一个提交路径为“/fileupload.do”、请求方式为post且编码类型为multipart/form-data(文件上传必需)的表单,包含文件选择框和上传按钮;后端UploadController类通过@RequestMapping(“/upload”)指定请求前缀,其内部的upload方法接收前端传来的MultipartFile文件对象和HttpServletRequest,先获取项目中“/uploads”目录的真实路径,判断该目录是否存在,不存在则创建,再用UUID生成唯一标识拼接原文件名以避免文件重名,最后调用transferTo方法将文件保存到“/uploads”目录,完成后返回“suc”视图。
上传结果:

打印结果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:50:02

JDBC以及工具类介绍

JDBC的概述 JDBC&#xff08;Java Database Connectivity&#xff09;是Java语言操作关系型数据库的标准化应用程序接口&#xff08;API&#xff09;&#xff0c;由 Java 官方定义并包含于 java.sql 与 javax.sql 包中。它通过一套统一的接口规范&#xff0c;为Java程序提供了访…

作者头像 李华
网站建设 2026/6/10 14:32:20

小程序计算机毕设之基于springboot+微信小程序的快递代取系统的设计与实小程序基于微信小程序的校园快递代领平台设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/10 14:34:24

[C++]mpi安装后测试代码

CMakeLists.txtinclude_directories("C:/Program Files (x86)/Microsoft SDKs/MPI/Include") link_directories("C:/Program Files (x86)/Microsoft SDKs/MPI/Lib/x64")# 查找 OpenMP&#xff08;重要&#xff01;&#xff09; find_package(OpenMP REQUIR…

作者头像 李华
网站建设 2026/6/9 15:42:30

2026大专会计应届生考证求职指南

会计行业核心证书 注册会计师&#xff08;CPA&#xff09;是国内会计行业含金量最高的证书&#xff0c;考试科目包括会计、审计、财务成本管理、经济法、税法和战略与风险管理。通过CPA考试能显著提升求职竞争力&#xff0c;尤其在会计师事务所和大型企业财务部门。 初级会计…

作者头像 李华
网站建设 2026/6/10 14:34:24

揭秘多态编程:重载、抽象与虚方法

《多态之函数重载》封装 继承 多态 抽象多态&#xff1a;同一个方法不同形态体现&#xff0c;多态分静态多态和动态的多态静态多态&#xff1a;函数重载和符号重载动态多态&#xff1a;抽象和虚方法函数重载&#xff1a;在同一个范围内&#xff0c;函数名一样&#xff0c;参数的…

作者头像 李华