前言
SpringMVC文件上传与struts的文件上传差不多,可以理解为SpringMVC是他的升级版
回顾一下,以前的方式
1,需要jsp页面 里面写个form表单
< form action=“xxx” method=“post” type=“mutipart/form-data”>
< input type=“file” name=“xxx”/>
< /form>
2、子控制器FIleUpladAction
private File xxx;
private String xxxFileName;
private String xxxContentType;
3、需要引入common-upload.jar
FileUtils.copu(cource,target)
话不多说,直接上代码
代码
1、添加pom.xml依赖
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
2、在Springmvc中配置文件上传解析器
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 必须和用户JSP 的pageEncoding属性一致,以便正确解析表单的内容 -->
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 文件最大大小(字节)1024*1024*50=50M-->
<property name="maxUploadSize" value="52428800"></property>
<!-- resolVeLazily属性启用是为了推迟文件解析,以便捕获文件大小异常-->
<property name="resolveLazily" value="true"></property>
</bean>
3、创建一个jsp界面将表单提交方式为method=“post” enctype="multipart/form-data"
<%--
Created by IntelliJ IDEA.
User: zjjt
Date: 2020/10/26
Time: 20:07
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>讲解SpringMVC文件上传</title>
</head>
<body>
<form action="/book/upload" method="post" enctype="multipart/form-data">
请选择文件:<input type="file" name="xxx"/>
<input type="submit" value="ok"/>
</form>
</body>
</html>
BookController
文件上传方法
/**
* 文件上传
* @param xxx
* @param req
* @return
*/
@RequestMapping("/upload")
public String upload(HttpServletRequest req,MultipartFile xxx){
String fileName =xxx.getOriginalFilename();
String contentType = xxx.getContentType();
try {
FileUtils.copyInputStreamToFile(xxx.getInputStream(),new File("E:/测试图片上传/"+fileName));
} catch (IOException e) {
e.printStackTrace();
}
return "redirect:/book/list";
}