1.文件上传
- springmvc为文件上传提供了直接的支持,这种支持是通过即插即用的MultipartResolver实现的。
- springmvc上下文中默认没有装配MultipartResolver。因此,默认情况下,不能处理文件的上传工作。如果,想使用此功能,需要在上下文中进行配置MultipartResolver
【第一步】、导包
【第二步】、配置MultipartResolver
在springmvc.xml中配置MultipartResolver,其内容为:
<!-- 配置多媒体文本解析器 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"></property>
<!-- 设置上传文件的最大尺寸为1000KB -->
<property name="maxUploadSize" value="1024000"></property>
</bean>
【第三步】、前台页面
<form action="testFileUpload" method="post" enctype="multipart/form-data">
File:<input type="file" name="file" /><br>
Desc:<input type="text" name="desc" /><br>
<input type="submit" value="确定" />
</form>
【第四步】、创建文件保存的虚拟目录
在Eclipse中双击tomcat服务器,就会弹出下面的框框
选择Modules,然后点击【Add External Web Module…】,在弹出的对话框中进行如下操作
设置好后,保存即可,这样上传的文件都会保存到Document base指定的目录中,相当于虚拟映射到Path指定的目录中,程序中获取这个文件,要从Path指定的虚拟目录中获取,即我上面的/images
【第五步】、编写后台
@RequestMapping("/testFileUpload")
public String testFileUpload(Model model,
@RequestParam("desc") String desc,
@RequestParam("file") MultipartFile file) throws IllegalStateException, IOException {
// 1.文件原始名
String fileName = file.getOriginalFilename();
// 2.保存文件
file.transferTo(new File("D:\\temp\\" + fileName));
model.addAttribute("fileName", fileName);
return "success";
}
【第六步】、编写上传成功之后的页面
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>SUCCESS</h1>
<img alt="" src="/images/${fileName }" />
</body>
</html>