SpringMVC实现多文件上传

本文实例为大家分享了Spring MVC多文件上传的具体代码,供大家参考,具体内容如下

1)创建工程并导入JAR包

2)创建多文件选择页面

在 WebContent 目录下创建 JSP 页面 multiFiles.jsp,在该页面中使用表单上传多个文件,具体代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <form action="${pageContext.request.contextPath }/multifile"
  method="post" enctype="multipart/form-data">
  选择文件1:<input type="file" name="myfile"><br>
  文件描述1:<input type="text" name="description"><br />
  选择文件2:<input type="file" name="myfile"><br>
  文件描述2:<input type="text" name="description"><br />
  选择文件3:<input type="file" name="myfile"><br>
  文件描述3:<input type="text" name="description"><br />
  <input type="submit" value="提交">
 </form>
</body>
</html>

3)创建POJO类

package pers.zhang.pojo;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;
public class MultiFileDomain {
 private List<String> description;
 private List<MultipartFile> myfile;

 public List<String> getDescription() {
 return description;
 }
 public void setDescription(List<String> description) {
 this.description = description;
 }
 public List<MultipartFile> getMyfile() {
 return myfile;
 }
 public void setMyfile(List<MultipartFile> myfile) {
 this.myfile = myfile;
 }

}

4)创建多文件上传处理方法

/**
* 多文件上传
*/
@RequestMapping("/multifile")
public String multiFileUpload(@ModelAttribute MultiFileDomain multiFileDomain,HttpServletRequest request) {
 String realpath = request.getServletContext().getRealPath("uploadfiles");
 File targetDir = new File(realpath);
 if (!targetDir.exists()) {
  targetDir.mkdirs();
 }
 List<MultipartFile> files = multiFileDomain.getMyFile();
 for (int i = 0; i < files.size(); i++) {
  MultipartFile file = files.get(i);
  String fileName = file.getOriginalFilename();
  File targetFile = new File(realpath, fileName);
  // 上传
  try {
   file.transferTo(targetFile);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 logger.info("成功");
 return "showMulti";
}

5)创建成功显示页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
 <table>
  <tr>
   <td>详情</td>
   <td>文件名</td>
  </tr>
  <!-- 同时取两个数组的元素 -->
  <c:forEach items="${multiFileDomain.description}" var="description"
   varStatus="loop">
   <tr>
    <td>${description}</td>
    <td>${multiFileDomain.myfile[loop.count-1].originalFilename}</td>
   </tr>
  </c:forEach>
  <!-- fileDomain.getMyfile().getOriginalFilename() -->
 </table>
</body>
</html>

6)测试文件上传

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Springmvc的运行流程图文详解

    一.常见类及其作用 HandlerExecutionChain : Handler执行链对象, 包含了请求处理器对象 以及所有的拦截器对象. HandlerMapping : 定义了所有的请求与 所有的请求处理器之间的映射. HandlerAdaptor: 请求处理器适配器对象, 负责完成请求处理器对象的调用 . 方法的执行等- 二. 运行流程: 浏览器端发送请求到服务器端: 1.1 当前的请求在DispatcherServlet中不存在对应的映射 ① 是否配置mvc:default-servl

  • SpringMVC的执行流程及组件详解

    这篇文章主要介绍了SpringMVC的执行流程及组件详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.核心模块 数据库访问技术与集成:JDBC.XML等 Web与远程调用技术:SpringMVC.WebServlet.WebSocket等 面向切面编程:AOP 基础设施:Tomcat Spring核心容器:Beans.Core.Context.Expression.ContestSupport 测试:Test 二.执行流程 1.用户通过页

  • 浅谈SpringMVC的执行流程

    #简易版 1.客户发送请求经过 DisPatcherServlet 核心过滤器 2.DisPatcherServlet 核心控制器在去找一个或多个HandlerMappering 找到需要处理的Controller 3.DisPatcherServlet 通过HandlerAdapter将请求转发给 Controller 4.Controller 调用业务处理后返回结果给 ModelAndView 5.DisPatcherServlet 找到一个或者多个 ViewResolver 视图解析器 找

  • SpringMVC日期类型接收空值异常问题解决方法

    最近遇到SpringMVC写个controller类,传一个空串的字符类型过来,正常情况是会自动转成date类型的,因为数据表对应类类型就是date的 解决方法是在controller类的后面加个注解: @InitBinder protected void initDateFormatBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); binde

  • springboot+springmvc实现登录拦截

    这篇文章主要介绍了springboot+springmvc实现登录拦截,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 LoginInterceptor 实现 HandlerInterceptor 接口,自定义拦截器处理方法 LoginConfiguration 实现 WebMvcConfigurer 接口,注册拦截器 ResourceBundle 加载 properties文件数据,配置不进行拦截的路径 LoginInterceptor pac

  • springmvc流程图以及配置解析

    springmvc:是完成数据的封装和跳转的功能 流程图如下: springmvc的配置流程 1.导入jar包 2.配置servlet文件 init-param的作用是在启动servlet启动时规定其地地址及名称去搜寻其springmvc配置文件 3.配置springmvc配置文件 进行handlermapping的配置,不进行配置时BeanNameUrlHandlerMapping, handlermapping的三种方式 1.默认方式BeanNameUrlHandlerMapping,根据b

  • bootstrap fileinput组件整合Springmvc上传图片到本地磁盘

    整合前的准备步骤 1.搭建好基础框架,本文用的是SSM(Spring+SpringMVC+Mybatis),这里的过程就不在本文中讲了,之前我做个一个demo(ssm整合+用户模块),可以参考这个搭建好. 2.下载bootstrap fileinput组件源码: https://github.com/kartik-v/bootstrap-fileinput/ 搭建后的效果图 图1. 图2. 图3. 图4. 图5. 在需要编写的jsp页面引入组件 本工程的路径界面如下: 在jsp引入组件需要的js

  • Spring MVC Controller返回值及异常的统一处理方法

    旧的设计方案 开发api的时候,需要先定义好接口的数据响应结果.如下是一个很简单直接的Controller实现方法及响应结果定义. @RestController @RequestMapping("/users") public class UserController { @Inject private UserService userService; @GetRequest("/{userId:\\d+}") public ResponseBean signin

  • SpringMVC的执行过程浅析

    前言 通过深入分析Spring源码,我们知道Spring框架包括大致六大模块, 如Web模块,数据库访问技术模块,面向切面模块,基础设施模块,核心容器模块和模块, 其中,在Spring框架的Web模块中,又包含很多前端技术,如SpringMVC,Spring WebSocket,Spring WebPortlet等,在本篇文章中,我们主要分析SpringMVC模块, 在分析SpringMVC技术时,本篇文章将通过解读SpringMVC源码,并通过编译器断点调试追踪,研究Spring核心类的UML

  • 使用jQuery.form.js/springmvc框架实现文件上传功能

    使用的技术有jquery.form.js框架, 以及springmvc框架.主要实现异步文件上传的同时封装对象,以及一些注意事项. 功能本身是很简单的,但是涉及到一些传递参数类型的问题.例如:jquery的ajax方法与jquery.form.js中的ajaxSubmit方法的参数,具体细节将在下一篇博客中分享. 重点: html表格三要素: action="fileUpload/fileUpload" method="post" enctype="mul

  • MyBatis与SpringMVC相结合实现文件上传、下载功能

    环境:maven+SpringMVC + Spring + MyBatis + MySql 本文主要说明如何使用input上传文件到服务器指定目录,或保存到数据库中:如何从数据库下载文件,和显示图像文件并实现缩放. 将文件存储在数据库中,一般是存文件的byte数组,对应的数据库数据类型为blob. 首先要创建数据库,此处使用MySql数据库. 注意:文中给出的代码多为节选重要片段,并不齐全. 1. 前期准备 使用maven创建一个springMVC+spring+mybatis+mysql的项目

  • SpringMVC + servlet3.0 文件上传的配置和实现代码

    简单几步,实现SpringMVC+servlet3.0文件上传功能: 第一步:配置web.xml文件中的servlet,添加multipart-config: <!-- SpringMVC --> <servlet> <servlet-name>myWeb</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-clas

  • SpringMVC多个文件上传及上传后立即显示图片功能

    多文件上传就是改良一个方法把MultipartFile类换成CommonsMultipartFile类,因为上传多个文件用数组方式的话MultipartFile类不能初始化,它不支持数组 package com.meng.upload; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import javax.servlet.http.HttpServletRe

  • springMVC+ajax实现文件上传且带进度条实例

    前端代码: <form id= "uploadForm"> <p >指定文件名: <input type="text" name="filename" value= ""/></p > <p >上传文件: <input type="file" name="file"/></ p> <input ty

  • SpringMVC实现多文件上传

    本文实例为大家分享了Spring MVC多文件上传的具体代码,供大家参考,具体内容如下 1)创建工程并导入JAR包 2)创建多文件选择页面 在 WebContent 目录下创建 JSP 页面 multiFiles.jsp,在该页面中使用表单上传多个文件,具体代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%&g

  • 详解springMVC两种方式实现多文件上传及效率比较

    springMVC实现多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传.这两种方式对于实现多文件上传效率上却有着很大的差距,下面我们通过实例来看一下这两种方式的实现方式,同时比较一下在效率上到底存在着多大的差距. 1.下载相关jar包.需要引入的jar出了springMVC的jar包外,还需要引入com.springsource.org.apache.commons.fileupload-1.2.0.jar和com.s

  • SpringMVC文件上传及查看的示例代码

    写在前面 谈到文件上传,首先要说业务逻辑,如果上传的文件大家都可以看(比如广告或者首页的banner)等,那么我们就把图片放在静态资源区(与css,js一样的位置)中,如果文件是受保护的(像用户只能查看自己上传的照片),那么我们就把它存放在服务器中的某个专门存放图片的位置. 本例分别展示了存放在两个位置的上传文件的方法,上传之后,作为延伸,还添加了查看上传的文件以及下载已经上传的文件的功能. 准备工作 配置SpringMVC,导入commons包 在mvc-servlet.xml中配置文件上传解

  • SpringMVC实现文件上传和下载的工具类

    本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中. 开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成类. 我的工具类具体代码如下: package com.baosight.utils; import java.io.BufferedInputStream; import java.io.File; import java.io.FileNotFoundException; import java

  • Springmvc文件上传实现流程解析

    SpringMVC 中对文件上传做了封装,我们可以更加方便的实现文件上传.从 Spring3.1 开始,对于文件上传,提供了两个处理器: CommonsMultipartResolver StandardServletMultipartResolver 第一个处理器兼容性较好,可以兼容 Servlet3.0 之前的版本,但是它依赖了commons-fileupload 这个第三方工具,所以如果使用这个,一定要添加 commons-fileupload 依赖. 第二个处理器兼容性较差,它适用于 S

随机推荐