SpringMVC实现多文件上传(一)
2017-10-20 00:00
267 查看
不管是开始学习Java或者SpringMVC的初学者,还是已经开始进行实际开发的开发者,我们都或多或少的会在开发中碰到多文件(图片)上传的问题,那么在这个过程中,我们需要采用什么方法实现相关功能呢?接下来我将简要介绍本人在实际开发中实现 实现的多图片上传的方法。 开发背景:在某功能模块中,当我们进行新增部门的操作中,需要分别上传部门照片及一张Logo图片,也就是说我们需要通过两个文件选择框分别选择需要上传的图片,再和其他信息连同这两张图片传递给后台进行相关处理。
实现步骤:
引入相关Maven架包:
配置文件上传解析器(spring-mvc.xml中):
前端实现(简):
分别定义两个文件上传选择框进行logo及部门照片的选择,定义不同的名称,以form表单的形式提交给后台,注意需要通过enctype="multipart/form-data"设置表单的MIME编码,通过action标签指明处理接口;
服务器端实现:
if (file != null) {
// 取得当前上传文件的文件名称
String myFileName = file.getOriginalFilename();
// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (myFileName.trim() != "") {
// 重命名上传后的文件名
String fileName = String.valueOf(System.currentTimeMillis());
String path = "F:\\logo";
newFile = fileName + "." + myFileName.substring(myFileName.indexOf(".") + 1);
File localFile = new File(path, newFile);
file.transferTo(localFile);
}
}
file2 = multiRequest.getFileMap().get("file2");
if (file2 != null) {
// 取得当前上传文件的文件名称
String myFileName = file2.getOriginalFilename();
// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (myFileName.trim() != "") {
// 重命名上传后的文件名
String fileName = String.valueOf(System.currentTimeMillis());
String path = "F:\\pic";
newFile = fileName + "." + myFileName.substring(myFileName.indexOf(".") + 1);
File localFile = new File(path, newFile);
file2.transferTo(localFile);
}
}
}
return "page/test";
}[/code]
在服务器端实现代码中,分别定义两个MultipartFile接收前端提交过来的两张图片来做相应的逻辑处理,上面的代码中为了方便查看,我将转储地址设置的计算机本地的磁盘,实际开发中应将其存放在服务器上。相应的实现逻辑较简单,在此就不详细介绍。后续将继续推出通过同一选择框选择多个文件进行上传操作的博文,敬请期待。
实现步骤:
引入相关Maven架包:
<!--数据上传的包--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency>
配置文件上传解析器(spring-mvc.xml中):
<!-- 配置多文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding"> <value>UTF-8</value> </property> <property name="maxUploadSize"> <!-- 上传文件大小限制为31M,31*1024*1024 --> <value>32505856</value> </property> <property name="maxInMemorySize"> <value>4096</value> </property> </bean>
前端实现(简):
分别定义两个文件上传选择框进行logo及部门照片的选择,定义不同的名称,以form表单的形式提交给后台,注意需要通过enctype="multipart/form-data"设置表单的MIME编码,通过action标签指明处理接口;
服务器端实现:
@RequestMapping(value = "/collect_info", method = RequestMethod.POST) public String upload(Model model, HttpServletRequest request) throws IOException { // 创建一个通用的多部分解析器 CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver( request.getSession().getServletContext()); if (multipartResolver.isMultipart(request)) { MultipartFile file = null; MultipartFile file2 = null; MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request; file = multiRequest.getFileMap().get("file"); String newFile = ""; [code=plain] List<String> listImagePath=
new
ArrayList<String>();
if (file != null) {
// 取得当前上传文件的文件名称
String myFileName = file.getOriginalFilename();
// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (myFileName.trim() != "") {
// 重命名上传后的文件名
String fileName = String.valueOf(System.currentTimeMillis());
String path = "F:\\logo";
newFile = fileName + "." + myFileName.substring(myFileName.indexOf(".") + 1);
File localFile = new File(path, newFile);
file.transferTo(localFile);
listImagePath.add(path);
}
}
file2 = multiRequest.getFileMap().get("file2");
if (file2 != null) {
// 取得当前上传文件的文件名称
String myFileName = file2.getOriginalFilename();
// 如果名称不为“”,说明该文件存在,否则说明该文件不存在
if (myFileName.trim() != "") {
// 重命名上传后的文件名
String fileName = String.valueOf(System.currentTimeMillis());
String path = "F:\\pic";
newFile = fileName + "." + myFileName.substring(myFileName.indexOf(".") + 1);
File localFile = new File(path, newFile);
file2.transferTo(localFile);
listImagePath.add(path);
}
}
}
request.setAttribute(
"imagesPathList"
, listImagePath);
return "page/test";
}[/code]
在服务器端实现代码中,分别定义两个MultipartFile接收前端提交过来的两张图片来做相应的逻辑处理,上面的代码中为了方便查看,我将转储地址设置的计算机本地的磁盘,实际开发中应将其存放在服务器上。相应的实现逻辑较简单,在此就不详细介绍。后续将继续推出通过同一选择框选择多个文件进行上传操作的博文,敬请期待。
相关文章推荐
- Java 文件上传 以及 springmvc实现文件上传
- 基于Springmvc实现简单的一次选中多个文件上传
- springMVC图片文件上传功能的实现
- springMVC两种方式实现多文件上传及效率比较
- SpringMVC简单实现上传Excel文件,并将Excel中的数据导入数据库
- springMVC两种方式实现多文件上传及效率比较
- SpringMVC常用配置(二),最简洁的配置实现文件上传
- springmvc文件上传下载简单实现案例(ssm框架使用)
- SpringMVC实现文件的上传和下载
- SpringMVC下实现Excel文件上传下载
- Springmvc下实现多个图片文件的上传与保存
- 【springmvc】java web使用ajaxSubmit方法实现Excel文件上传
- springmvc 文件上传实现(不是服务器的)
- servlet、struts2、springmvc中实现带进度条的文件上传
- springmvc与Servlet3.0不依赖common包实现文件上传
- springMVC两种方式实现多文件上传及效率比较
- 在SpringMVC框架中实现文件上传和下载
- SpringMVC结合ajaxfileupload.js实现文件无刷新上传
- springmvc实现多文件上传
- springMVC实现单文件和多文件上传