原文地址:

http://www.cnblogs.com/WJ-163/p/6269409.html 上传参考

http://www.cnblogs.com/lonecloud/p/5990060.html 下载参考

一、关键步骤

①引入核心JAR文件

SpringMVC实现文件上传,需要再添加两个jar包。一个是文件上传的jar包,一个是其所依赖的IO包。这两个jar包,均在Spring支持库的org.apache.commons中。

②书写控制器方法

applicationContext.xml:

错误

index.jsp页面:需指定 enctype="multipart/form-data

1

2

3

4

5

6

7

<body>

<form action="${pageContext.request.contextPath }/first.do" method="post" enctype="multipart/form-data">

<h2>文件上传</h2>

文件:<input type="file" name="uploadFile"/><br/><br/>

<input type="submit" value="上传"/>

</form>

</body>

实现效果:  

二、没有选择要上传的文件&&限制文件上传类型

如果没有选择要上传的文件,可以通过如下判断代码回到错误页,并配置异常类

1

2

3

4

<!-- 配置异常类  报错 -->

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">

<property name="defaultErrorView" value="/error.jsp"></property>

</bean>

 

三、多文件上传 

实现效果:

四、文件下载

1

<a href="${pageContext.request.contextPath }/download.do?line.jpg">下载</a>

实现效果:

下载不采用这种方式,参考下面这段代码:

  1. /**
  2.      * 文件下载
  3.      * @Description:
  4.      * @param fileName
  5.      * @param request
  6.      * @param response
  7.      * @return
  8.      */
  9.     @RequestMapping("/download")
  10.     public String downloadFile(@RequestParam("fileName") String fileName,
  11.             HttpServletRequest request, HttpServletResponse response) {
  12.         if (fileName != null) {
  13.             String realPath = request.getServletContext().getRealPath(
  14.                     "WEB-INF/File/");
  15.             File file = new File(realPath, fileName);
  16.             if (file.exists()) {
  17.                 response.setContentType("application/force-download");// 设置强制下载不打开
  18.                 response.addHeader("Content-Disposition",
  19.                         "attachment;fileName=" + fileName);// 设置文件名
  20.                 byte[] buffer = new byte[1024];
  21.                 FileInputStream fis = null;
  22.                 BufferedInputStream bis = null;
  23.                 try {
  24.                     fis = new FileInputStream(file);
  25.                     bis = new BufferedInputStream(fis);
  26.                     OutputStream os = response.getOutputStream();
  27.                     int i = bis.read(buffer);
  28.                     while (i != -1) {
  29.                         os.write(buffer, 0, i);
  30.                         i = bis.read(buffer);
  31.                     }
  32.                 } catch (Exception e) {
  33.                     // TODO: handle exception
  34.                     e.printStackTrace();
  35.                 } finally {
  36.                     if (bis != null) {
  37.                         try {
  38.                             bis.close();
  39.                         } catch (IOException e) {
  40.                             // TODO Auto-generated catch block
  41.                             e.printStackTrace();
  42.                         }
  43.                     }
  44.                     if (fis != null) {
  45.                         try {
  46.                             fis.close();
  47.                         } catch (IOException e) {
  48.                             // TODO Auto-generated catch block
  49.                             e.printStackTrace();
  50.                         }
  51.                     }
  52.                 }
  53.             }
  54.         }
  55.         return null;
  56.     }

Spring MVC文件上传下载(转载)的更多相关文章

  1. Spring MVC文件上传下载工具类

    import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import ...

  2. Spring MVC 文件上传下载

    本文基于Spring MVC 注解,让Spring跑起来. (1) 导入jar包:ant.jar.commons-fileupload.jar.connom-io.jar. (2) 在src/cont ...

  3. 【Java Web开发学习】Spring MVC文件上传

    [Java Web开发学习]Spring MVC文件上传 转载:https://www.cnblogs.com/yangchongxing/p/9290489.html 文件上传有两种实现方式,都比较 ...

  4. Spring MVC 笔记 —— Spring MVC 文件上传

    文件上传 配置MultipartResolver <bean id="multipartResolver" class="org.springframework.w ...

  5. Spring MVC文件上传教程 commons-io/commons-uploadfile

    Spring MVC文件上传教程 commons-io/commons-uploadfile 用到的依赖jar包: commons-fileupload 1.3.1 commons-io 2.4 基于 ...

  6. Spring mvc文件上传实现

    Spring mvc文件上传实现 jsp页面客户端表单编写 三个要素: 1.表单项type="file" 2.表单的提交方式:post 3.表单的enctype属性是多部分表单形式 ...

  7. Spring mvc 文件上传到文件夹(转载+心得)

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...

  8. Spring MVC 文件上传 & 文件下载

    索引: 开源Spring解决方案--lm.solution 参看代码 GitHub: pom.xml WebConfig.java index.jsp upload.jsp FileUploadCon ...

  9. spring mvc 文件上传 ajax 异步上传

    异常代码: 1.the request doesn't contain a multipart/form-data or multipart/mixed stream, content type he ...

随机推荐

  1. 代码实现:输入三个整数x,y,z,请把这三个数由小到大输出。

    import java.util.Arrays; import java.util.Scanner; //输入三个整数x,y,z,请把这三个数由小到大输出. public class Test { p ...

  2. 代码实现:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%; 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元

    import java.util.Scanner; /* 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成 ...

  3. CentOS7 通过 YUM 升级 VIM8

    Run 就完了: rpm -Uvh http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm ...

  4. JPA访问数据库的几种方式

    JPA访问数据库的几种方式 本文为原创,转载请注明出处:https://www.cnblogs.com/supiaopiao/p/10901793.html 1. Repository 1.1. 通过 ...

  5. elasticsearch-6.2.3单机搭建

    1.这里说明下,elasticsearch为了保证安全性需要创建新的用户名,需要在新的用户名下运行,本人用的是elasticsearch-6.2.3,centos7.3 2.切换目录到:cd usr/ ...

  6. 将JSON字符串反序列化为指定的.NET对象类型

    目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ...

  7. PHP 异步执行方式

    在工作中我们经常遇到一些比较耗时的任务,比如用户注册发送邮件,审核短信通知等功能,同步执行这些功能的话,响应时间就会变长,所以一般我们会用队列去管理这些功能,但是如果条件不允许怎么办,今天get了一个 ...

  8. nginx配置thinkphp项目(nginx下去掉index.php)

    server { listen 80; server_name xxxxx; root "/www/public"; location / { index index.html i ...

  9. 微软永恒之蓝ms17010补丁下载-wannacry

    勒索病毒爆发:上百国家遭"感染",Windows勒索病毒恐怖蔓延!勒索病毒,掀起了全球上百个国家.数十亿用户对网络安全的恐慌,微软推出的永恒之蓝ms17010补丁下载专为勒索病毒专 ...

  10. maven坐标Dependencies和Exclusions详解

    1.概念介绍 Dependencies:是可选依赖(Optional Dependencies) Exclusions:是依赖排除(Dependency Exclusions) 2.Dependenc ...