SpringMVC 菜鸟教程 3 文件上传 CommonsMultipartResolver
2017-01-18 23:24
489 查看
CommonsMultipartResolverUploadController
package com.jege.spring.mvc; import java.io.File; import java.util.Iterator; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.commons.CommonsMultipartResolver; @Controller public class CommonsMultipartResolverUploadController{ // http://localhost:8080/upload @RequestMapping(value = "/upload", method = RequestMethod.GET) public String uploadGet() { System.out.println("先以get的请求方式显示上传页面"); return "upload"; } int i = 0;// 简单改变上传文件的名字 @RequestMapping(value = "/upload", method = RequestMethod.POST) public String uploadPost(HttpServletRequest request) throws Exception { System.out.println("在以post请求方式处理上传的请求"); // 记录开始上传文件的时间 long startTime = System.currentTimeMillis(); String webapp = request.getServletContext().getRealPath("/upload"); System.out.println("上传文件保存到服务器webapp的路径:" + webapp); // 存放文件的路径 File deskFile = new File(webapp, "eclipse.zip"); System.out.println("上传文件存放的最终路径:" + deskFile.getAbsolutePath()); // 将当前上下文初始化给 CommonsMutipartResolver:配置上传文件解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); // 检查form中是否有enctype="multipart/form-data",即是是否有文件上传 if (multipartResolver.isMultipart(request)) { // 将request变成多部件MultipartHttpServletRequest MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; // 获取multiRequest 中所有的文件名 Iterator<String> iter = multiRequest.getFileNames(); // 遍历所有文件 while (iter.hasNext()) { MultipartFile file = multiRequest.getFile(iter.next()); if (file != null) {// 处理上传 file.transferTo(deskFile); } } } // 添加提示信息 request.setAttribute("msg", "上传成功"); // 记录结束上传文件的时间 long endTime = System.currentTimeMillis(); System.out.println("上传究竟用了多少时间:" + String.valueOf(endTime - startTime) + "ms"); // 直接转发到upload.jsp return "upload"; } }
上传300MB文件耗时比较
使用CommonsMultipartResolver来保存上传的文件先以get的请求方式显示上传页面
在以post请求方式处理上传的请求
上传究竟用了多少时间:261ms
第二次上传究竟用了多少时间:223ms
第三次上传究竟用了多少时间:276ms
其他关联项目
SpringMVC 菜鸟教程 文件上传-配置http://blog.csdn.net/je_ge/article/details/53725357
SpringMVC-文件上传-MultipartFile
http://blog.csdn.net/je_ge/article/details/53726147
源码地址
https://github.com/je-ge/spring如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。您的支持将鼓励我继续创作!谢谢!
相关文章推荐
- SpringMVC中使用CommonsMultipartResolver进行文件上传
- SpringMVC中使用CommonsMultipartResolver上传文件实例
- SpringMVC使用CommonsMultipartResolver实现文件上传
- 使用SpringMvc的CommonsMultipartResolver上传文件(效率很高)
- SpringMVC中使用CommonsMultipartResolver进行文件上传
- SpringMVC-4.2 CommonsMultipartResolver 文件上传配置
- SpringMVC 学习-上传文件分解器 CommonsMultipartResolver 类
- SpringMVC 文件上传 MultipartFile、CommonsMultipartResolver
- 【springMVC】解决contextConfigLocation对应的配置文件加了CommonsMultipartResolver上传文件出现404 Not Found的问题
- SpringMVC中使用CommonsMultipartResolver进行文件上传
- springMVC3学习(十二)--文件上传优化CommonsMultipartResolver
- springMVC3学习(十二)--文件上传优化CommonsMultipartResolver
- springMVC3学习(十二)--文件上传优化CommonsMultipartResolver
- springMVC3学习(十二)--文件上传优化CommonsMultipartResolver
- 使用Spring CommonsMultipartResolver 上传文件
- spring mvc CommonsMultipartResolver文件上传maxUploadSize限制大小
- spring mvc CommonsMultipartResolver文件上传maxUploadSize限制大小
- Using a MultipartResolver with Commons FileUpload[就是使用commons FileUpload上传文件]
- 使用Spring CommonsMultipartResolver 上传文件
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-003- 上传文件multipart,配置StandardServletMultipartResolver、CommonsMultipartResolver