springMVC3学习(十二)--文件上传优化CommonsMultipartResolver

基于上一篇文件上传发现效率很慢,我们应该对它进行优化 使用springMVC对文件上传的解析器

来处理文件上传的时候需要在springapplicationContext里面加上springMVC提供的MultipartResolver的申明

这样客户端请求的时候 springMVC会检查request里面是否包含多媒体信息如果包含了就会使用MultipartResolver进行解析,

springMVC会使用一个支持文件 处理的MultipartHttpServletRequest来包裹当前的HttpServletRequest

然后使用MultipartHttpServletRequest就可以对文件进行处理了


此处只改动FileController类 其他配置参考上一篇

[java] view plain copy
在CODE上查看代码片 派生到我的代码片
  1. @Controller
  2. publicclassFileController{
  3. @RequestMapping("/fileUpload.do")
  4. publicStringfileUpload(HttpServletRequestrequest,HttpServletResponseresponse){
  5. longstartTime=System.currentTimeMillis();//获取开始时间
  6. CommonsMultipartResolvermultipartResolver=newCommonsMultipartResolver(request.getSession().getServletContext());
  7. if(multipartResolver.isMultipart(request)){//判断request是否有文件上传
  8. MultipartHttpServletRequestmultiRequest=(MultipartHttpServletRequest)request;
  9. Iterator<String>ite=multiRequest.getFileNames();
  10. while(ite.hasNext()){
  11. MultipartFilefile=multiRequest.getFile(ite.next());
  12. if(file!=null){
  13. FilelocalFile=newFile("D:/"+file.getOriginalFilename());
  14. try{
  15. file.transferTo(localFile);//将上传文件写到服务器上指定的文件
  16. }catch(IllegalStateExceptione){
  17. e.printStackTrace();
  18. }catch(IOExceptione){
  19. e.printStackTrace();
  20. }
  21. }
  22. }
  23. }
  24. longendTime=System.currentTimeMillis();//获取结束时间
  25. System.out.println("上传文件共使用时间:"+(endTime-startTime));
  26. return"success";
  27. }
  28. }
同样上传一个3.54M的PDF文件 只使用了16毫秒(已自己计算机实际为准)

可见差别之悬殊。

项目源码下载:http://download.csdn.net/detail/itmyhome/7453821

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值