SpringMVC文件上传
SpringMVC文件上传可以通过两种方式来实现:
1、使用CommonsMultipartResolver处理器,它是Spring自带的,可以直接使用;
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760"/>
</bean>
2、使用StandardServletMultipartResolver处理器,它是Spring 3.1以后引入的,可以替代CommonsMultipartResolver,它的配置如下:
<bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"/>
SpringMVC文件上传的步骤如下:
1、在页面中添加<form>表单,并设置enctype="multipart/form-data";
<form action="${pageContext.request.contextPath}/upload" enctype="multipart/form-data" method="post">
<input type="file" name="file"/>
<input type="submit" value="上传"/>
</form>
2、在控制器中添加MultipartFile参数,用于接收上传的文件;
@RequestMapping("/upload")
public void upload(@RequestParam("file") MultipartFile file) {
// 获取文件名
String fileName = file.getOriginalFilename();
// 获取文件的后缀名
String suffixName = fileName.substring(fileName.lastIndexOf("."));
}
3、调用MultipartFile的transferTo()方法将文件保存到指定位置;
// 文件上传路径
String filePath = "D:/upload/";
// 解决中文问题,liunx下中文路径,图片显示问题
// fileName = UUID.randomUUID() + suffixName;
File dest = new File(filePath + fileName);
// 检测是否存在目录
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
file.transferTo(dest);
4、完成文件上传操作;