SpringMVC 菜鸟教程 2 文件上传 MultipartFile
来源:互联网 发布:东东数据cf刷枪教程 编辑:程序博客网 时间:2024/05/20 12:23
MultipartFileUploadController
package com.jege.spring.mvc;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import javax.servlet.http.HttpServletRequest;import org.apache.commons.io.FilenameUtils;import org.apache.commons.io.IOUtils;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;@Controllerpublic class MultipartFileUploadController{ // 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(MultipartFile upload, HttpServletRequest request) throws Exception { System.out.println("在以post请求方式处理上传的请求"); if (upload != null) { // 记录开始上传文件的时间 long startTime = System.currentTimeMillis(); System.out.println("上传文件的名称:" + upload.getOriginalFilename()); System.out.println("上传文件的类型:" + upload.getContentType()); System.out.println("上传文件的大小:" + upload.getSize()); System.out.println("前台jsp提交上传控件的name属性:" + upload.getName()); System.out.println("获取上传文件的后缀名:" + FilenameUtils.getExtension(upload.getOriginalFilename())); String webapp = request.getServletContext().getRealPath("/upload"); System.out.println("上传文件保存到服务器webapp的路径:" + webapp); // 存放文件的路径 File deskFile = new File(webapp, i++ + upload.getOriginalFilename()); System.out.println("上传文件存放的最终路径:" + deskFile.getAbsolutePath()); // 上传文件存放最终路径的父目录不存在,就创建一次 File parentFile = deskFile.getParentFile(); if (!parentFile.exists()) { parentFile.mkdirs(); } // 方法1:使用commons-io工具包IOUtils类 // 获取上传文件的流 InputStream inputStream = upload.getInputStream(); FileOutputStream output = new FileOutputStream(deskFile); // 把上传文件的inputStream拷贝到文件里面 IOUtils.copy(inputStream, output); inputStream.close(); output.close(); // 方法2:使用MultipartFile.Transto 来保存上传的文件 // upload.transferTo(deskFile); // 通过测试方法2会快点 // 添加提示信息 request.setAttribute("msg", "上传成功"); // 记录结束上传文件的时间 long endTime = System.currentTimeMillis(); System.out.println("上传究竟用了多少时间:" + String.valueOf(endTime - startTime) + "ms"); } // 直接转发到upload.jsp return "upload"; }}
上传300MB文件耗时比较
使用commons-io工具包IOUtils类
先以get的请求方式显示上传页面
在以post请求方式处理上传的请求
上传文件的名称:eclipse-jee-neon-1a-win32-x86_64.zip
上传文件的大小:316290168(301MB)
上传究竟用了多少时间:8944ms
第二次上传究竟用了多少时间:11664ms
第三次上传究竟用了多少时间:10703ms使用MultipartFile.transferTo来保存上传的文件
先以get的请求方式显示上传页面
在以post请求方式处理上传的请求
上传文件的名称:eclipse-jee-neon-1a-win32-x86_64.zip
上传文件的类型:application/zip
上传文件的大小:316290168(301MB)
上传究竟用了多少时间:219ms
第二次上传究竟用了多少时间:276ms
第三次上传究竟用了多少时间:286ms通过测试方法2会快点
其他关联项目
- SpringMVC 菜鸟教程 1 文件上传-配置
http://blog.csdn.net/je_ge/article/details/53725357
源码地址
https://github.com/je-ge/spring
如果觉得我的文章或者代码对您有帮助,可以请我喝杯咖啡。您的支持将鼓励我继续创作!谢谢!
0 0
- SpringMVC 菜鸟教程 2 文件上传 MultipartFile
- SpringMVC上传文件MultipartFile
- springmvc 上传文件 MultipartFile
- SpringMVC MultipartFile文件上传
- springMVC文件上传 MultipartFile
- springmvc中multipartFile文件上传
- SpringMVC 文件上传配置MultipartFile
- SpringMVC 文件上传 MultipartFile、CommonsMultipartResolver
- SpringMVC 文件上传,使用MultipartFile
- SpringMVC使用Multipartfile上传文件
- SpringMVC 菜鸟教程 1 文件上传 配置
- SpringMVC 菜鸟教程 3 文件上传 CommonsMultipartResolver
- SpringMVC 文件上传,使用的MultipartFile
- SpringMVC MultipartFile来进行多文件上传
- springMVC MultipartFile html5 多文件上传
- Springmvc 上传文件MultipartFile 转File 笔记
- SpringMVC利用MultipartFile进行文件上传
- SpringMVC使用MultipartFile 实现异步上传文件
- Opengl中的FBO对象
- CNN年龄、性别、表情识别
- Android开发——ListView使用技巧总结(二)
- 浅谈数据库设计冗余
- Rational Rose 安装及破解激活
- SpringMVC 菜鸟教程 2 文件上传 MultipartFile
- stitching_detail算法介绍(二)
- 杭州赛区总结(2016)
- 关于html的一个小项目
- js中的Math对象操作
- 用Ghost进行备份还原
- 编程语言的主要类型,声明式编程,命令式编程()和函数式编程的区别
- 51Nod - 1289
- H5表单验证不得为空,自定义提示语