文章目录
- 🥰教会你怎么使用SpringMVC 文件上传
- 基本介绍
- 需求分析/图解
- 😘代码实现
- 引入 springmvc 文件上传需要jar
- 创建fileUpload.jsp
- 配置中文过滤器,
- 配置文件上传解析器,
- 创建FileUploadHandler.java
- 😉完成测试
- (页面方式 ),
- (Postman 方式)
- 😄总结
🥰教会你怎么使用SpringMVC 文件上传
基本介绍
SpringMVC为文件上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的
Spring用Jakarta Commons FileUpload技术实现了一个MultipartResolver
实现类:CommonsMultipartResovler
Spring MVC 上下文中默认没有装配 MultipartResovler,
因此默认情况下不能处理文件的上传工作,如果想使用 Spring 的文件上传功能,
需现在上下文中配置 MultipartResolver
<!--配置文件上传需要的bean-->
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
id="multipartResolver"/>
需求分析/图解
😘代码实现
引入 springmvc 文件上传需要jar
创建fileUpload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<h1>文件上传的演示</h1>
<form action="<%=request.getContextPath()%>/fileUpload" method="post" enctype="multipart/form-data">
文件介绍:<input type="text" name="introduce"><br>
选择文件:<input type="file" name="file"><br>
<input type="submit" value="上传文件">
</form>
</body>
</html>
配置中文过滤器,
在 web.xml, 使用 Spring 提供的,前面我们配置过了
中文乱码处理
配置文件上传解析器,
<!--配置文件上传需要的bean-->
<bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
id="multipartResolver"/>
创建FileUploadHandler.java
@Controller
public class FileUploadHandler {
//编写方法,处理文件上传的请求
@RequestMapping(value = "/fileUpload")
public String fileUpload(@RequestParam(value = "file") MultipartFile file,
HttpServletRequest request, String introduce) throws IOException {
//接收到提交的文件名
String originalFilename = file.getOriginalFilename();
System.out.println("你上传的文件名= " + originalFilename);
System.out.println("introduce=" + introduce);
//得到要把上传文件保存到哪个路径[全路径:包括文件名]
String fileFullPath =
request.getServletContext().getRealPath("/img/" + originalFilename);
//创建文件
File saveToFile = new File(fileFullPath);
//将上传的文件,转存到saveToFile
file.transferTo(saveToFile);
return "success";
}
}
😉完成测试
(页面方式 ),
看文件是否成功上传 , 浏 览 器 : http://localhost:8080/springmvc/fileUpload.jsp
(Postman 方式)
注意需要选择文件的形式…,