转自:http://blog.csdn.NET/dycdyc11/article/details/40481477
一、配置文件:
SpringMVC 用的是 的MultipartFile来进行文件上传 所以我们首先要配置MultipartResolver:用于处理表单中的file
- <!-- 配置MultipartResolver 用于文件上传 使用spring的CommosMultipartResolver -->
- <beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
- p:defaultEncoding="UTF-8"
- p:maxUploadSize="5400000"
- p:uploadTempDir="fileUpload/temp"
- >
- </beans:bean>
其中属性详解:
defaultEncoding="UTF-8" 是请求的编码格式,默认为iso-8859-1
maxUploadSize="5400000" 是上传文件的大小,单位为字节
uploadTempDir="fileUpload/temp" 为上传文件的临时路径
二、创建一个简单的上传表单:
- <body>
- <h2>文件上传实例</h2>
- <form action="fileUpload.html" method="post" enctype="multipart/form-data">
- 选择文件:<input type="file" name="file">
- <input type="submit" value="提交">
- </form>
- </body>
注意要在form标签中加上enctype="multipart/form-data"表示该表单是要处理文件的,这是最基本的东西,很多人会忘记然而当上传出错后则去找程序的错误,却忘了这一点
三、编写上传控制类
1、创建一个控制类: FileUploadController和一个返回结果的页面list.jsp
2、编写提交表单的action:
- //通过Spring的autowired注解获取spring默认配置的request
- @Autowired
- private HttpServletRequest request;
- /***
- * 上传文件 用@RequestParam注解来指定表单上的file为MultipartFile
- *
- * @param file
- * @return
- */
- @RequestMapping("fileUpload")
- public String fileUpload(@RequestParam("file") MultipartFile file) {
- // 判断文件是否为空
- if (!file.isEmpty()) {
- try {
- // 文件保存路径
- String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
- + file.getOriginalFilename();
- // 转存文件
- file.transferTo(new File(filePath));
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- // 重定向
- return "redirect:/list.html";
- }
- /***
- * 读取上传文件中得所有文件并返回
- *
- * @return
- */
- @RequestMapping("list")
- public ModelAndView list() {
- String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/";
- ModelAndView mav = new ModelAndView("list");
- File uploadDest = new File(filePath);
- String[] fileNames = uploadDest.list();
- for (int i = 0; i < fileNames.length; i++) {
- //打印出文件名
- System.out.println(fileNames[i]);
- }
- return mav;
- }
3、使用SpringMVC注解RequestParam来指定表单中的file参数;
4、指定一个用于保存文件的web项目路径
5、通过MultipartFile的transferTo(File dest)这个方法来转存文件到指定的路径。
到此基本的文件上传就结束了。
MultipartFile类常用的一些方法:
String getContentType()//获取文件MIME类型
InputStream getInputStream()//后去文件流
String getName() //获取表单中文件组件的名字
String getOriginalFilename() //获取上传文件的原名
long getSize() //获取文件的字节大小,单位byte
boolean isEmpty() //是否为空
void transferTo(File dest) //保存到一个目标文件中。
四、多文件上传。
多文件上传其实很简单,和上传其他相同的参数如checkbox一样,表单中使用相同的名称,然后action中将MultipartFile参数类定义为数组就可以。
接下来实现:
1、创建一个上传多文件的表单:
- <body>
- <h2>上传多个文件 实例</h2>
- <form action="filesUpload.html" method="post"
- enctype="multipart/form-data">
- <p>
- 选择文件:<input type="file" name="files">
- <p>
- 选择文件:<input type="file" name="files">
- <p>
- 选择文件:<input type="file" name="files">
- <p>
- <input type="submit" value="提交">
- </form>
- </body>
2、编写处理表单的action,将原来保存文件的方法单独写一个方法出来方便共用:
- /***
- * 保存文件
- * @param file
- * @return
- */
- private boolean saveFile(MultipartFile file) {
- // 判断文件是否为空
- if (!file.isEmpty()) {
- try {
- // 文件保存路径
- String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/"
- + file.getOriginalFilename();
- // 转存文件
- file.transferTo(new File(filePath));
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return false;
- }
- 3、编写action:
- @RequestMapping("filesUpload")
- public String filesUpload(@RequestParam("files") MultipartFile[] files) {
- //判断file数组不能为空并且长度大于0
- if(files!=null&&files.length>0){
- //循环获取file数组中得文件
- for(int i = 0;i<files.length;i++){
- MultipartFile file = files[i];
- //保存文件
- saveFile(file);
- }
- }
- // 重定向
- return "redirect:/list.html";
- }
相关推荐
本篇文章主要介绍了SpringMVC使用MultipartFile实现文件的上传,本地的文件上传到资源服务器上,比较好的办法就是通过ftp上传。这里是结合SpringMVC+ftp的形式上传的,有兴趣的可以了解一下。
主要介绍了SpringMVC使用MultipartFile 实现异步上传方法介绍,涉及pom依赖的添加,配置文件的修改等具体操作代码,需要的朋友可以了解下。
主要介绍了SpringMVC 上传文件 MultipartFile 转为 File的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
使用springmvc+spring 的框架 使用了apache.commons.fileupload、和springmvc的multipart.MultipartFile 两种技术实现了两种上传方式。
文件的上传与下载基本上是web项目中会用到的技术,在web学习中我们用到的是 Apache fileupload 这个组件来实现上传,在springmvc中对它进行了封装,让我们使用...springmvc中由 MultipartFile接口 来实现文件上传。
主要为大家详细介绍了SpringMVC使用MultipartFile实现文件上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
SpringMVC文件上传下载 @Controller @RequestMapping(value="/file") public class FileController { @Resource private User user; @RequestMapping(value="/toUpload") public String toUpload(){ return...
本篇文章主要介绍了SpringMVC 文件上传配置,详解介绍了如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤,有兴趣的可以了解一下。
本资源是用于实现springMVC多文件上传时需要的jar包
本篇文章主要介绍了SpringMvc MultipartFile实现图片文件上传示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
本篇文章主要介绍了SpringMVC中MultipartFile上传获取图片的宽度和高度,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
//转成文件上传请求 MultipartHttpServletRequest murequest = (MultipartHttpServletRequest)request; //在文件上传请求中获取文件,根据file的name List<MultipartFile> files = murequest.getFiles("image...
实现文件上传的思路: 1、创建form表单,...3、在SpringMVC配置文件中加入文件上传的解析器配置:CommonsMultipartReslover,id要严格写死:multipartReslover。 4、引入文件上传的相关依赖:commons-fileupload
spring mvc上传 下载ftp文件
复制过来就可以用,前提需要在项目中springmvc文件进行配置 后台 @RequestMapping(value = /uplode, method = RequestMethod.POST) @ResponseBody public Map uplode(MultipartHttpServletRequest request,@...
本篇文章介绍了springMVC两种方式实现多文件上传及效率比较。springMVC实现多文件上传有两种,一种是字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传,有兴趣的可以了解一下。
MultipartFile集合-批量文件上传 14 日期类型参数处理 14 一、统一以字符串形式接收 14 二、使用注解@DateTimeFormat或者@JsonFormat 15 三、Jackson序列化和反序列化定制 16 四、最佳实践 17 请求URL匹配 17 ‘?’...
利用spring的MultipartHttpServletRequest,MultipartFile独立异步上传文件 外带ajaxfileupload.js
单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传 前端项目地址: : 简介 预先采用vue.js + plupload + element-ui实现了文件在浏览器端的发送,而采用了spring boot + spring + spring mvc + ...
图片上传插件,可多文件上传和回显,可删除已上传图片,可进行拖拽上传。 springmvc接收传向后台的值方法 @RequestMapping("/admin/addImage.do") public ModelAndView handleRequest(HttpServletRequest request,...