在使用SpringMVC做上传文件时,通常的做法是,如下:
public Map<String, Object> upload(HttpServletRequest request, @RequestParam MultipartFile file){ }
在形参中定义MultipartFile,如果是单个文件,倒还没有什么影响,我们完全可以将input的name定义为file,否则会接收不到。那如果多文件呢? 像这样MultipartFile[] files 么?? 对于多个input file,我们不可能吧所有的input的name都定义为同样的名字, 比如file。如果改了名字,会发现接收不到,或者少接收。
那有时候,我们确实希望所有的input file的name都不一样,可能一个name是file1,另一个name是file2, 那我们没理由定义多个的,如下:
public Map<String, Object> upload(MultipartFile file1,MultipartFile file2,MultipartFile file3){ }
这样,对与多文件,但名字有不同的情况下,我们会麻烦死。
那SpringMVC有另外一种方式,可以让我们解决这种困扰,就是使用CommonsMultipartResolver:
public Map<String,Object> upload(HttpServletRequest request){ CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext()); if(multipartResolver.isMultipart(request)){ MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request; Iterator<String> iter = multiRequest.getFileNames(); while(iter.hasNext()){ MultipartFile file = multiRequest.getFile(iter.next()); System.out.println(file.getName()); } } }
这样就能解决多文件上传,但name又不统一的问题了。 当然,SpringMVC的文件上传,我也推荐使用这个,要比MultipartFile好用,具体自己可以测试一下。
相关推荐
基于SpringMVC+Spring3+Mybatis框架的OA项目 基于SpringMVC+Spring3+Mybatis框架的OA项目 基于SpringMVC+Spring3+Mybatis框架的OA项目 基于SpringMVC+Spring3+Mybatis框架的OA项目 基于SpringMVC+Spring3+Mybatis...
基于SpringMVC+Spring3+Mybatis框架的OA项目源码.zip 基于SpringMVC+Spring3+Mybatis框架的OA项目源码.zip 基于SpringMVC+Spring3+Mybatis框架的OA项目源码.zip 基于SpringMVC+Spring3+Mybatis框架的OA项目源码.zip ...
基于Springboot+Mybatis+SpringMvc+springsecrity+Redis完整网站后台管理系统.zip
基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis+Maven项目案例 基于SpringMVC+Spring+MyBatis...
SpringMVC+Spring3+Hibernate4
基于Springboot+Mybatis+ SpringMvc+springsecrity+Redis完整网站后台管理系统,, 这个还是挺先进的,,可以学习学习
maven+springMVC+mybatis+velocity+mysql+junit项目框架搭建
Spring+SpringMVC+Mybatis+Velocity+Maven整合
基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+MyBatis+Maven项目案例源码+数据库.zip 基于SpringMVC+Spring+...
spring+springmvc+hibernate4+easyui+maven完整项目搭建
Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统。 Spring+SpringMVC+MyBatis+Shiro+MySQL+Redis+Maven+EasyUI+Bootstrap实现的通用权限管理系统 Spring+SpringMVC+...
springMvc+hibernate4+spring整合实例 包内有对实例的crud 增删查改 分享此资源希望一起学习 若有什么不足之处 可以指出 谢谢
springmvc + spring + mybatis + maven整合配置文件
基于SpringMVC+Spring+HBase+Maven搭建的Hadoop分布式云盘系统.zip 语言:Java 框架:springMVC 数据库:HBASE 可以作为毕业设计
SpringMVC +Spring4.3.12+jackson+文件上传 所有Jar包
完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis).zip 完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统(RESTful API+redis).zip 完善的Spring+SpringMVC+Mybatis+easyUI后台管理系统...
基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + SpringMvc + Mybatis + Shiro+ Redis 开发单点登录管理系统 基于 SpringBoot + Spring + ...
该项目主要技术架构包括:spring+springMVC+Mybatis+MYSQL+Redis+Maven,适合初学者,简单易懂。
SpringMvc Spring Mybatis Maven 注解方式