Spring mvc实现文件上传
2016-07-28 23:06
477 查看
Spring mvc为文件上传提供了很直接的支持,这种支持时通过即插即用的MultipartResolver实现的。Spring使用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver。 Spring mvc的配置文件中默认是没有装配MultipartResolver,因此在默认情况下是不能处理一个文件上传工作的。如果想要使用就必须在上下文中配置。 1、配置MultipartResolver 在Spring mvc的配置文件中加入以下配置
<bean id="multipartResovler" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="UTF-8" p:maxUploadSize="5242880" p:uploadTempDir="upload/temp">
注意:defaultEncoding必须和用户jsp中的pageEncoding属性一致,以便正确的读取表单中的内容,uploadTempDir是文件上传过程所使用的临时目录,文件上传完成后就会被自动清除。 2、编写控制器和文件上传表单 UserController.java
@Controller @RequestMapping("/user") public class UserController { @RequestMapping(value="/uploadPage") public String uploadPage(){ return "uploadPage"; } @RequestMapping(value="/upload") public String upload(@RequestParam("name") String name,@RequestParam("file") MultipartFile file){ if(!file.isEmpty()) { file.transferTo(new File("d:/tem/" + file.getOriginalFilename())); return "redirect:success.html"; } else { return "redirect:fail.html"; } }
Spring mvc会将上传的文件绑定到MultipartFile对象中。MultipartFile提供了获取上传文件的内容、文件名等,还可以通过tramsferTo()方法将文件存储到磁盘中。 负责上传文件的表单和一般的表单还是有区别的,表单类型必须是multipart/form-data类型。
<%@ page language="java" contentType="text/html;charest=UTF-8" pageEncoding="UTF-8" %> <%@ tag lib prefix="c" uri="http://java.sun.com/jsp/jst/core" %> <html> <head> <title>请上传头像</title> </head> <body> <form method="post" action="<c:url value="/user/upload.html">" enctype="multipart/form-date"> <input type="text" name="name"/> <input type="file" name="file"/> <input type="submit"/> </form> </body> </html>
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring和ThreadLocal
- Spring Boot 开发微服务
- Spring AOP动态代理-切面
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- C# MVC模式下商品抽奖功能实现
- Zend的MVC机制使用分析(二)
- ASP.NET MVC 4 捆绑和缩小实例介绍
- asp.net mvc实现简单的实时消息推送
- ASP.NET Mvc开发之查询数据
- ASP.NET MVC中将控制器分离到类库的实现
- asp.net实现在非MVC中使用Razor模板引擎的方法
- MVC默认路由实现分页(PagerExtend.dll下载)
- ASP.NET MVC中的AJAX应用
- 为ASP.NET MVC及WebApi添加路由优先级