- 浏览: 555292 次
- 性别:
- 来自: 长沙
文章分类
- 全部博客 (145)
- apache-struts (3)
- apache-shiro (4)
- apache-wicket (1)
- spring (34)
- spring-data-jpa (2)
- spring-mvc (20)
- spring-security (1)
- spring-webflow (1)
- hibernate (2)
- mongodb (1)
- ibatis (5)
- mysql (4)
- 开源组件 (18)
- java (3)
- maven (7)
- jBPM (1)
- EJB (1)
- JMS (2)
- servlet / jsp (9)
- javascript / jquery (10)
- 工作技巧 (12)
- ubuntu (6)
- bootstrap (10)
- javaee (1)
- 他山石 (7)
- jetbrick (1)
最新评论
-
yubao2008:
[size=x-small]为什么我也这样试了, 就是没有生效 ...
javax.servlet.http.HttpServletResponse 得到 status_code -
chenrl:
...
SpringMVC杂记(十五) spring-mvc controller 的切面 -
LONGTENGLONG:
你好,这样配置的,得到的集合为空,是什么原因?
apache-shiro杂记(一) 统计在线用户数目 -
xiafengfeiwu:
[flash=200,200][url]引用[/url][/f ...
apache-shiro 学习笔记 -
3108493554:
你好 ,有些问题想请教下,加下我qq310849354,你这上 ...
SpringMVC杂记(十二) 自定义Interceptor从Active Directory得到域信息
SpringMVC杂记(一) 文件上传
1) 添加multipartResolver的配置
2) 由于multipartResolver采用的是CommonsMultipartResolver的实现毫无疑问 Jakarta commons fileupload组件是必须添加到
CLASSPATH下的。 另外Spring也使用了 Jakarta commons io组件。
pom.xml
3) JSP
4) RequestMapping 方法
5) 上传文件过大怎么办? 如何抓到org.springframework.web.multipart.MaxUploadSizeExceededException ?
其实这样做是不行的。 因为,test()方法还没有被执行的时候,在数据绑定阶段MaxUploadSizeExceededException的一个实例已经被抛出。
SpringMVC框架,直接在exceptionResolver的配置中去找对应的逻辑视图名。
应该把这个Controller实现为一个org.springframework.web.servlet.HandlerExceptionResolver。
1) 添加multipartResolver的配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="100000" /> <property name="defaultEncoding" value="UTF-8" /> </bean>
2) 由于multipartResolver采用的是CommonsMultipartResolver的实现毫无疑问 Jakarta commons fileupload组件是必须添加到
CLASSPATH下的。 另外Spring也使用了 Jakarta commons io组件。
pom.xml
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.1</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> </dependency>
3) JSP
<%@ page language="java" %> <%@ page contentType="text/html; charset=UTF-8" %> <%@ page import="java.util.*" %> <%@ page isELIgnored="false" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <html> <head> <base href="<%=basePath%>" /> <title>上传测试</title> </head> <body> <form action="test/upload" method="post" enctype="multipart/form-data"> <table> <tr> <td>文件名</td> <td> <input type="text" name="fileName"> </td> </tr> <tr> <td>文件</td> <td> <input type="file" name="file"> </td> </tr> <tr> <td colspan="2"><input type="submit" value="上传"></td> </tr> </table> </form> </body> </html>
4) RequestMapping 方法
@Controller @RequestMapping(value = "/test") public class TestController { private static final File USER_FILES_DIRECTORY = new File("D:/TEST_UPLOAD/"); @ResponseBody @RequestMapping(value = "/upload", method = {RequestMethod.POST}) public String test( @RequestParam("fileName") String fileName, @RequestParam("file") CommonsMultipartFile file) throws Exception { file.getFileItem().write(new File(USER_FILES_DIRECTORY, fileName)); return "OK"; } }
5) 上传文件过大怎么办? 如何抓到org.springframework.web.multipart.MaxUploadSizeExceededException ?
@Controller @RequestMapping(value = "/test") public class TestController{ // ... @ExceptionHandler(MaxUploadSizeExceededException.class) public ModelAndView handleMaxUploadSizeExceededException(Exception ex, WebRequest request) { // TODO: 在这里处理MaxUploadSizeExceededException return null; } }
其实这样做是不行的。 因为,test()方法还没有被执行的时候,在数据绑定阶段MaxUploadSizeExceededException的一个实例已经被抛出。
SpringMVC框架,直接在exceptionResolver的配置中去找对应的逻辑视图名。
应该把这个Controller实现为一个org.springframework.web.servlet.HandlerExceptionResolver。
@Controller @RequestMapping(value = "/test") public class TestController implements HandlerExceptionResolver { private static final File USER_FILES_DIRECTORY = new File("D:/TEST_UPLOAD/"); @ResponseBody @RequestMapping(value = "/upload", method = {RequestMethod.POST}) public String test( @RequestParam("fileName") String fileName, @RequestParam("file") CommonsMultipartFile file) throws Exception { file.getFileItem().write(new File(USER_FILES_DIRECTORY, fileName)); return "OK"; } public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { if (ex instanceof MaxUploadSizeExceededException) { System.out.println("上传过大错误已经处理"); return new ModelAndView("redirect:http://www.iteye.com"); } return null; // 其他错误交由exceptionResolver处理 } }
发表评论
-
SpringMVC杂记(十八) ServletRequestAttributes的应用
2014-02-28 12:38 14139看了一下SpringMVC的源代码,原来SpringMVC也提 ... -
SpringMVC杂记(十七) HandlerMethodArgumentResolver接口应用example
2014-01-24 15:29 12151自从spring3.1 开始就有了这个接口,可以为@Reque ... -
SpringWebflow杂记(一) 框架初探,与SpringMVC的集成
2013-10-23 17:18 1664今日研究了一下SpringWebFlow这个项目,作为Spri ... -
SpringMVC杂记(十六) spring-mvc 与 openid4java
2013-10-12 15:25 3814SpringMVC杂记(十六) spring-mvc 与 op ... -
SpringMVC杂记(十五) spring-mvc controller 的切面
2013-08-01 19:42 6060SpringMVC杂记(十五) spring-mvc cont ... -
Spring集成CXF
2013-06-24 15:53 1522Spring集成CXF 零) jar依赖 <dep ... -
SpringMVC杂记(十四) Ajax方式的JSR303认证
2013-06-13 07:29 4480自己定义一个Exception,用来表示数据绑定失败 im ... -
SpringMVC杂记(十三) 使用FreeMarker作为视图层
2013-06-09 11:55 3349实在没什么好说的,直接上配置文件好了 <bean i ... -
SpringMVC杂记(十二) 自定义Interceptor从Active Directory得到域信息
2013-06-04 14:04 3149一)最近项目中要求实现Web应用的SSO(Single Sig ... -
通过spring,javamail,和freemarker集成发送HTML方式的电子邮件
2013-05-30 14:02 4819一) 现在项目中用的javamail和org.springfr ... -
SpringMVC杂记(十一) 使用Excel视图
2013-04-06 16:06 6576SpringMVC杂记(十一) 使用Excel视图 一) 其 ... -
Spring集成junit
2012-12-24 10:43 1452package junit; import org. ... -
BootstrapPlugin - daterangepicker 使用笔记
2012-11-13 12:17 21005BootstrapPlugin - daterangepick ... -
SpringMVC杂记(十) 验证码生成
2012-11-06 10:18 2726以前写过一篇关于这个的博客,现在用SpringMVC了,重写一 ... -
SpringMVC杂记(九) 模拟其他类型(非GET,POST)的请求
2012-10-22 10:49 26321) 以前一个小兄弟问我,SpringMVC是否可以使用很多浏 ... -
SpringMVC杂记(八) 使用阿里巴巴的fastjson
2012-07-21 08:27 102281) 国产开源软件要支持的 <dependency& ... -
ActiveMQ学习笔记(二) JMS与Spring
2012-06-24 10:21 7347上文可见,JMS Native API使用起来不是特别方便。好 ... -
我的SpringSecurity实践
2012-04-08 07:49 8908我的SpringSecurity实践 (一) 数据库与实体类 ... -
SpringMVC杂记(七) Jackson与Hibernate LazyLoding无法正常工作解决办法
2012-03-21 13:35 7001SpringMVC杂记(七) Jackson与Hibernat ... -
SpringMVC杂记(六) 下载文件
2012-03-21 09:04 4214SpringMVC杂记(六) 下载文件 1) jar依赖 ...
相关推荐
springmvc上传文件controller,vue
springMvc 文件上传,springMvc 支持单文件和多文件上传,
SpringMVC+Ajax异步文件上传+短视频背景+a标签绑定文件域
在上一篇SpringMVC基础教程的源码基础上增加了文件上传,多文件上传
SpringMVC单文件上传、多文件上传、文件列表显示、文件下载,具体效果和过程看博文http://blog.csdn.net/evankaka/article/details/45826697
springmvc框架的文件上传 下载:自己整理的一些错误:404等
springMVC 上传文件方式springMVC 上传文件方式springMVC 上传文件方式
基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于...
JavaEE企业级开发-----SpringMVC实现 文件的上传下载实验报告
SpringMVC文件上传与下载的实现,包括UploadController和DownloadController
SpringMVC框架实现文件的上传和下载项目案例源码
springmvc 上传下载文件,支持 ajax,form 提交,支持 multiple 方式上传文件
springMVC多文件上传d
springMVC测试上传文件并在页面上显示
详细的介绍了SpringMVC中文件的上传和下载
本人自己学习springmvc学习文件上传下载,和spring资源国际化
springmvc中实现文件上传所要用到的jar包
基于springmvc框架的上传文件程序,可运行,java开发语言
SpringMVC完整实现跨服务器文件传输的demo代码,实现文件服务器与其业务代码分离