news 2026/6/9 13:53:58

【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/8 12:30:08

【毕业设计】基于springboot+微信小程序的快递代取系统的设计与实小程序(源码+文档+远程调试,全bao定制等)

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

作者头像 李华
网站建设 2026/6/5 7:22:52

小程序计算机毕设之基于微信小程序的集换社卡牌的交易系统基于springboot+微信小程序的集换社卡牌的交易系统小程序(完整前后端代码+说明文档+LW,调试定制等)

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

作者头像 李华
网站建设 2026/6/9 18:35:43

小白前端避坑指南:用 position-relative 轻松搞定文字图片重叠问题

小白前端避坑指南&#xff1a;用 position-relative 轻松搞定文字图片重叠问题小白前端避坑指南&#xff1a;用 position-relative 轻松搞定文字图片重叠问题揭开 relative 的神秘面纱——它真的不是“相对谁”文档流的小剧场&#xff1a;relative 到底动了谁的奶酪&#xff1f…

作者头像 李华