jar包复制到WEB-INF 文件夹lib下:

commons-io-1.3.2.jar

public static String download(HttpServletRequest request, 
              HttpServletResponse response, String urlandfile,String fileName) throws Exception { 
    String msg=null;
     try {
     response.setCharacterEncoding("UTF-8");
     response.setContentType("text/html");
     javax.servlet.ServletOutputStream ou = response.getOutputStream();
     //文件名
    // String filename=new String(fileName.getBytes("ISO8859_1"),"GB2312").toString();//解决中文乱码,此处不作处理

//路径
     java.io.File file = new java.io.File(urlandfile);
   
     if (!file.exists()) {
     System.out.println(file.getAbsolutePath() + " 文件不能存在!");
      msg="unexists";
      return msg;
     }
   
     // 读取文件流
     java.io.FileInputStream fileInputStream = new java.io.FileInputStream(file);
   
     // 下载文件
     // 设置响应头和下载保存的文件名
   
     response.setContentType("application/x-msdownload");//弹出下载的框
    
     response.setContentLength((int) file.length());//下载统计文件大小的进度
     response.setHeader("Content-Disposition", "attachment; filename="+fileName);
     //下载框的信息
     if (fileInputStream != null) {
     int filelen = fileInputStream.available();
     //文件太大时内存不能一次读出,要循环
    
     byte a[] = new byte[filelen];
   
     fileInputStream.read(a);
    
     ou.write(a);
     }
     fileInputStream.close();
   
     ou.close();
   
     msg="success";
     } catch (Exception e) {
      e.printStackTrace();
      msg="error";
  
      
     }
     //解决完成后使用一切正常,但是总抛出java.lang.IllegalStateException异常主要是流还存在
     return msg;
      } 
  }

//解决完成后使用一切正常,但是总抛出java.lang.IllegalStateException异常主要是流还存在方法:

在返回界面(jsp)加上

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
   
    <title>操作成功</title>
   
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">   
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 <!--
 <link rel="stylesheet" type="text/css" href="styles.css">
 -->

</head>
 
  <body>
  <%--下载成功之后需要清空流--%>
  操作成功!
  <%
 out.clear();
 out = pageContext.pushBody();
 %>
  </body>
</html>

spring+jpg环境下,spring实现文件下载web实现通用的文件下载方法的更多相关文章

  1. Docker容器环境下ASP.NET Core Web API

    Docker容器环境下ASP.NET Core Web API应用程序的调试 本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Dock ...

  2. 在SoCEDS环境下编译和更新preloader和uboot程序的方法

    在SoCEDS环境下编译和更新preloader和uboot程序的方法   前面有介绍preloader在HPS boot过程中的的作用,接下来讲述下用户在SoCEDS环境下改如何编译preloade ...

  3. 痞子衡嵌入式:在IAR开发环境下为工程开启CRC完整性校验功能的方法

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是在IAR开发环境下为工程开启CRC完整性校验功能的方法. CRC校验在嵌入式领域里的应用非常广,比如在通信领域,CRC检验值可以作为数据 ...

  4. spring集成环境下的axis webservice的发布,调试

    在spring集成的环境下,无论你是ssh集成,还是ssi集成的情况下,发布webservice往往在调用的时候会出错. 特别是,如果你是这个方式: 将webservice打aar包,放到tomcat ...

  5. spring Boot环境下dubbo+zookeeper的一个基础讲解与示例

    一,学习背景 1.   前言 对于我们不管工作还是生活中,需要或者想去学习一些东西的时候,大致都考虑几点: a)      我们为什么需要学习这个东西? b)     这个东西是什么? c)      ...

  6. 从 Spring 的环境到 Spring Cloud 的配置

    需求 不知不觉,web 开发已经进入 “微服务”.”分布式” 的时代,致力于提供通用 Java 开发解决方案的 Spring 自然不甘人后,提出了 Spring Cloud 来扩大 Spring 在微 ...

  7. Docker容器环境下ASP.NET Core Web API应用程序的调试

    本文主要介绍通过Visual Studio 2015 Tools for Docker – Preview插件,在Docker容器环境下,对ASP.NET Core Web API应用程序进行调试.在 ...

  8. 在Node.js环境下使用Express创建Web项目实例

    序:如果你还不知道Node.js是什么,那么你可以先看看这篇:Node.js 究竟是什么?或者任何关于它的介绍. 一.安装Node.js 1.进入Node.js官网下载并安装 2.启动cmd输入命令查 ...

  9. eclipse环境下无法创建android virtual Devices(AVD)问题解决的方法汇总

    首先,要在eclipse环境下成功的创建一个安卓虚拟机,须要有三项东西,第一就是eclipse,第二就是android SDK Manager,第三就是ADT,也就是eclipse环境下的一个安卓虚拟 ...

随机推荐

  1. hibernate封装查询,筛选条件然后查询

    // 封装查询条件 @Test public void transmitParameter() { Map map = new HashMap<String, String>(); // ...

  2. 机器学习(二)——K-均值聚类(K-means)算法

    最近在看<机器学习实战>这本书,因为自己本身很想深入的了解机器学习算法,加之想学python,就在朋友的推荐之下选择了这本书进行学习,在写这篇文章之前对FCM有过一定的了解,所以对K均值算 ...

  3. php flock注意事项

    对于实际的运用,必须将其添加到所有使用的文件脚本中 但注意:其函数无法再NFS或其他网络文件系统中使用也无法在多线程服务器API中使用.

  4. 【英语】Bingo口语笔记(20) - i长短音

    短音有个ei的音,多练习下 长音是咦拉长

  5. UVa 11520 Fill the Square 填充正方形

    在一个 n * n 网格中填了一些大写字母,你的任务是把剩下的格子中也填满大写字母,使得任意两个相邻格子(即有公共边的格子)中的字母不同.如果有多重填法,则要求按照从上到下,从左到右的顺序把所有格子连 ...

  6. Tomcat: localhost:8080 提示404

    下午配置环境,配置完成后,欣喜地进入localhost:8080,结果给我提示404 心想:尼玛,这localhost都还会404,这不坑爹吗?! 琢磨了好久,结果被我搞定了,只需要做一个改动: 打开 ...

  7. 开发者必须知道的HTML5十五大新特性

    HTML5想必大家都很熟悉了,因为太多的媒体在讨论这一技术.然而,你能准确地说出HTML5带来了哪些新特性吗?本文总结了HTML5带来的15项你必须知道的新特性. 一起来看下: 1.新的文档类型  ( ...

  8. MultiMap

    类关系 ArrayListMultiMap.java Multimap <I> | | AbstractMultimap <A> Serializable <I> ...

  9. mysql优化SQL语句的一般步骤及常用方法

    一.优化SQL语句的一般步骤 1. 通过show status命令了解各种SQL的执行频率 mysqladmin extended-status 或: show [session|global]sta ...

  10. CDB和PDB基本管理

    CDB和PDB基本管理 这篇文章主要介绍CDB和PDB的基本管理,资料来源oracle官方. 基本概念: Multitenant Environment:多租户环境 CDB(Container Dat ...