springmvc(十)之文件上传

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>
发布了78 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Lucky_Boy_Luck/article/details/100130177