需要用到的依赖
<!-- spring的依赖-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.2.RELEASE</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>
</dependency>
<!--文件上传需要用到的-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
springmvc配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--文件处理类,此配置的id值只能是multipartResolver,不能是别的,否则会报错-->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为20MB -->
<property name="maxUploadSize">
<value>20485760</value>
</property>
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
</bean>
<!-- 配置创建 spring 容器要扫描的包 -->
<context:component-scan base-package="com.controller"></context:component-scan>
<!-- 配置视图解析器 -->
<bean id="internalResourceViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
Controller类
@Controller
public class HelloController {
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("file") CommonsMultipartFile file) {
try {
// 保存文件
file.transferTo(new File("F:" + File.separator + file.getOriginalFilename()));
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("contentType" + file.getContentType());
System.out.println("name" + file.getName());
System.out.println("originalFilename" + file.getOriginalFilename());
return "success";
}
}
页面
<%--
Created by IntelliJ IDEA.
User: m1769
Date: 2021/1/30
Time: 14:38
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>upload</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上 传">
</form>
</body>
</html>
完活,
需要注意的点
- CommonsMultipartResolver注入到springMVC的id值只能是multipartResolver,不能是其他值,否则会报错
- org.springframework.web.multipart.commons.CommonsMultipartResolver要注入到springMVC的容器,不能注入到spring的容器,