SpringMVC处理上传文件
Spring MVC处理文件上传
Spring MVC为文件上传提供了直接支持,这种支持是通过即插即用的MultipartResolver实现. Spring使用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。
在SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下不能处理文件上传工作。如果想使用Spring的文件上传功能,则需要先在上下文中配置MultipartResolver。
- 引入jar包!
commons-fileupload.jar commons-io.jar
maven项目pom.xml
-
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> 配置MultipartResolver
配置
<!--multipartResolver配置 id必须为multipartResolver-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
p:defaultEncoding="UTF-8"
p:maxUploadSize="5242880"
p:uploadTempDir="file:/d:/file/temp"
/>
- 编写控制器和文件上传表单
编写文件上传表单 upload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<center>
<form method="post" enctype="multipart/form-data" action="user/upload">
上传图片:
<input type="file" name="file" />
<button>提交</button>
</form>
</center>
</body>
</html>
编写控制器代码
1. @RequestMapping("/toUpload") public String toUpload(){
//跳转到上传页面
return "user/upload"; }
@RequestMapping("/upload") public String
saveFile(@RequestParam("file")MultipartFile file) throws IOException
{
//接收表单提交的数据,包含文件
System.out.println("name = " + name);
// baseurl=D:\workspace_idea1\TestSSM\target\TestSSM\upload\
String basePath=request.getSession().getServletContext().getRealPath("/upload/");
System.out.println(basePath);
try {
file.transferTo(new File(basePath+file.getOriginalFilename()));
} catch (IOException e) {
e.printStackTrace();
}
return "success"; }

浙公网安备 33010602011771号