public HttpServletResponse download(String path, HttpServletResponse response) {

try {

// path是指欲下载的文件的路径。

File file = new File(path);

// 取得文件名。

String filename = file.getName();

// 取得文件的后缀名。

String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();

// 以流的形式下载文件。

InputStream fis = new BufferedInputStream(new FileInputStream(path));

byte[] buffer = new byte[fis.available()];

fis.read(buffer);

fis.close();

// 清空response

response.reset();

// 设置response的Header

response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));

response.addHeader("Content-Length", "" + file.length());

OutputStream toClient = new BufferedOutputStream(response.getOutputStream());

response.setContentType("application/octet-stream");

toClient.write(buffer);

toClient.flush();

toClient.close();

} catch (IOException ex) {

ex.printStackTrace();

}

return response;

}

java file 下载文件_java下载文件的几种方式相关推荐

  1. java map 迭代遍历_java 遍历Map的四种方式

    java 遍历Map的四种方式 CreationTime--2018年7月16日16点15分 Author:Marydon 一.迭代key&value 第一种方式:迭代entrySet 1.方 ...

  2. java实现多线程抢单_JAVA实现多线程的四种方式

    JAVA多线程实现方式: 1.继承Thread类(无返回值) 2.实现Runnable接口(无返回值) 3.实现Callable接口,通过FutureTask包装器来创建Threak线程(有返回值) ...

  3. java如何遍历树_java 遍历树的四种方式

    java 遍历树的四种方式 最近做一个玫瑰图报表,数据源为TreeJson(树状json),在网上搜集下资料,和大家分享.: 先序遍历 中序遍历 后序遍历 层次遍历 public class Tree ...

  4. java file数组 初始化_java从文件中读取数据并赋值给数组

    从txt文件中读取数据赋值给一维数组 字节流读入字节数组中 字节数组转化为字符串 字符创解析为字符串数组 字符串数组转化为数值,并赋值为数组 文本文件是以字节的形式储存的. 在txt文件中一个数字或者 ...

  5. java加载配置文件_Java 读取配置文件的五种方式

    方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来. 因为是用ServletContext读取文件路径,所以配置文件可以放入在WEB-INF的clas ...

  6. java的依赖注入_Java依赖注入的三种方式

    Spring通过DI(依赖注入)实现IOC(控制反转),常用的注入方式主要有三种:组织方式注入,setter注入,基于注解的注入. 组织方式注入 组织器注入:保证了一些需要的属性在Bean实例化时就设 ...

  7. java tostring格式化日期_Java格式化日期的三种方式

    1)借助DateFormat类: public String toString(Date d) { SimpleDateFormat sdf = new SimpleDateFormat(" ...

  8. 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)

    读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...

  9. python怎么下载图片怎么保存到本地_详解Python下载图片并保存本地的两种方式

    一:使用Python中的urllib类中的urlretrieve()函数,直接从网上下载资源到本地,具体代码: import os,stat import urllib.request img_url ...

  10. java json 解析_Java解析JSON的四种方式

    一.什么是JSON JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于阅读和编写,同时也易于解析和 ...

最新文章

  1. 【转】GeoServer地图开发解决方案(四):发布Web地图服务(WMS)篇
  2. 第三篇——第二部分——第三文 配置SQL Server镜像——域环境
  3. python 3 输入和输出
  4. [转载] 百科全说——栾加芹:你适合这些食物吗?(11-03-07)
  5. 开源当自强:我们不是“便宜货”
  6. 算法日记-01-算法和数据结构概览
  7. 7-169 龟兔赛跑 (20 分)
  8. 实验一 DOS命令解释程序的编写
  9. Unity —Spine动画
  10. 创建 VSTO 工作簿的windows安装包
  11. IntelliJ IDEA 2018 破解版下载安装
  12. 视频播放组件实战【LivePlayer H5播放器】
  13. JAVA基本IO操作
  14. Photoshop 2018 学习笔记 目录
  15. 一行输入两个整数,以空格间隔
  16. asp计算机房预约系统源码,(机房)实验室预约管理系统
  17. 【解锁技能】学会Python条件语句的终极指南!
  18. 将N阶矩阵M置成单位阵
  19. idea使用账号不能登录
  20. 女博士被程序员嘲笑:代码能力太差,不知道怎么招进来的

热门文章

  1. L309 单音节词读音规则(一)-辅音字母发音规则
  2. 要玩转这个星际争霸II开源AI,你只需要i5+GTX1050
  3. 瑞士电信vCPE商用落地 华三通信NFV方案成最大功臣
  4. 编写Dockerfiles的最佳做法
  5. 了解一下JavaScript的未来——ECMAScript5
  6. 关于nginx/lighttpd epoll高并发以及apache为何不采用epoll的的疑惑 不指定
  7. javascript动态创建表格:新增、删除行和列
  8. 实验讲解OSPF网络类型
  9. 【转】名企献身说法:我们喜欢这样的简历
  10. 关于 Qt 5,你所需要了解的基础知识