1. mavn坐标依赖。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring.version>5.0.2.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</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>
<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>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
<version>1.18.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.18.1</version>
</dependency>
</dependencies>
2. 在SpringMVC主配置文件中添加文件解析器配置。
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>
3. 页面。
(
注意事项:
1.form表单的method属性值必须为post。
2.form表单的enctype属性值必须改为multipart/form-data。
3.图片上传input标签的type属性值必须为file。
)
<form action="uploadFile" method="post" enctype="multipart/form-data">
图片上传:<input type="file" name="uploadFile"/><br/>
<input type="submit" value="上传"/>
</form>
4. Controller层代码。
(
注意事项:
方法的参数uploadFile,必须和前台图片上传的name属性保持一致。
)
@RequestMapping(value = "uploadFile", method = RequestMethod.POST)
public String uploadFile(HttpServletRequest request, MultipartFile uploadFile) throws IOException {
String basePath = request.getSession().getServletContext().getRealPath("/uploads");
String oldName = uploadFile.getOriginalFilename();
String uuid = UUID.randomUUID().toString().replace("-","").toUpperCase();
String newName = uuid+"_"+oldName;
String dataFormat = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
File file = new File(basePath+"/"+dataFormat);
if (!file.exists()) {
file.mkdirs();
}
uploadFile.transferTo(new File(file,newName));
return "success";
}