SpringMVC实现文件上传
web配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- 前端控制器 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- spring 提供了一个字符编码过滤器 Filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--配置访问首页-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
pom文件需要的依赖
<!-- 文件上传 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
html页面表单
<body>
<form action="save" method="post" enctype="multipart/form-data">
文件上传:<input type="file" NAME="upload"><br>
<input type="submit" value="提交">
</form>
</body>
Controller控制类
@Controller
public class UploadController {
@RequestMapping("/save")
@ResponseBody
public String upload(@RequestParam("upload") MultipartFile upload , HttpServletRequest request) {
System.out.println("上传中.............");
//1.获取文件上传的 原名称 使用SpringMVC中 MultipartFile 实现文件上传
String originalFilename = upload.getOriginalFilename();
//2.准备文件上传的位置 服务器当前工程的某个位置
String realPath = request.getSession().getServletContext().getRealPath("upload");
//3.判断上传的位置 是否存在 ,不存在创建
File file = new File(realPath);
if (!file.exists()){
file.mkdir();
}
//4.拼接路径 将文件位置和源文件名称 连接 + 系统当前时间毫秒值
String fileName=realPath+File.separator+System.currentTimeMillis()+originalFilename;
System.out.println("输出拼接地址=="+fileName);
//5.实现文件上传
try {
upload.transferTo(new File(fileName));
} catch (IOException e) {
e.printStackTrace();
return "文件上传失败";
}
return "文件上传成功";
}
}
e.printStackTrace();
return "文件上传失败";
}
return "文件上传成功";
}
}