后台:Conteoller

/**

* 下载文件

* @param fileurl

* @param session

* @param response

* @throws IOException

*/

@RequestMapping("/download")

public void getFile(String fileurl,  HttpSession session, HttpServletResponse response)

throws IOException {

String basePath = session.getServletContext().getRealPath("/");// 获取基本路径

if (null!=fileurl && !fileurl.equals("")) {

/* 第一步:根据文件路径获取文件 */

File file = new File(basePath + "\\images\\" +fileurl);

if (file.exists()) { // 文件存在

/* 第二步:根据已存在的文件,创建文件输入流 */

InputStream inputStream = new BufferedInputStream(new FileInputStream(file));

/* 第三步:创建缓冲区,大小为流的最大字符数 */

byte[] buffer = new byte[inputStream.available()]; // int available() 返回值为流中尚未读取的字节的数量

/* 第四步:从文件输入流读字节流到缓冲区 */

inputStream.read(buffer);

/* 第五步: 关闭输入流 */

inputStream.close();

String fileName = file.getName();// 获取文件名

response.reset();

response.addHeader("Content-Disposition",

"attachment;filename=" + new String(fileName.getBytes("utf-8"), "iso8859-1"));

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

/* 第六步:创建文件输出流 */

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

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

/* 第七步:把缓冲区的内容写入文件输出流 */

outputStream.write(buffer);

/* 第八步:刷空输出流,并输出所有被缓存的字节 */

outputStream.flush();

/* 第九步:关闭输出流 */

outputStream.close();

}else{

return;

}

}

}

使用文件流的方式将文件下载到本地。

从java中安装webolgc_Javaweb| 文件下载相关推荐

  1. JAVA中的通用文件下载接口

    本文记录下JAVA中的通用文件下载接口,每次都上网找,挺麻烦的. 文章目录 概述 概述 /*** 通用下载请求** @param filePathName 文件路径*/@GetMapping(&quo ...

  2. java se13安装教程_在Linux发行版中安装Java 13/OpenJDK 13的方法

    本文介绍在Linux发行版Ubuntu 18.04/16.04.Debian 10/9.CentOS 7/8.Fedora 31/30/29中安装Java 13/OpenJDK 13.Java SE ...

  3. 关于使用JAVA中JDK安装和在命令行中编译和运行程序的一些总结

    JDK安装:http://www.oracle.com/technetwork/java(可以选择安装路径) (在写下载这个JDK时需要先创建账户) 1.下载完之后就可以安装了,安装路径自己可以设置, ...

  4. linux系统中安装java

    linux系统中安装java 文章目录 linux系统中安装java 视频 检查是否安装jdk 下载jdk的tar.gz版本 创建jdk文件夹 上传到服务器 解压到 /usr/local/java/ ...

  5. java安装_快速提示:Java中的ISO 8601持续时间

    java安装 许多开发人员都知道ISO 8601定义的日期和时间的交换格式. (例如2007-08-31T16:47 +00:00代表2007年8月31日UTC的16:47 ) 但是,并不是很知名(至 ...

  6. 在 Linux 操作系统中安装 Java

    在 Linux 操作系统中安装 Java 笔者的运行环境: CentOS Stream 8 x86_64 Java 11.0.12 进行这个教程之前,必须要先安装好一个 Linux 操作系统.这个 L ...

  7. 如何在Java中使用Lombok删除样板安装程序获取器

    你好朋友, 一次又一次反对Java的观点之一是,我们必须写很多样板 我们简单的POJO类的setter和getter形式的代码,不必要地增加了 我们代码的长度. 为了解决这个问题,有一个名为Proje ...

  8. 怎么样配置java的jdk_如何安装java中的JDK以及配置

    java作为现在最热门的语言,基本每个编程人员都会使用Java进行开发,也就是说每个编程人员的电脑上都有java存在.java怎么安装就不说了,但是相信java JDk是在安装Java时候觉得最麻烦的 ...

  9. linux中jdk添加字体_在Linux上为Openjdk Java定义/安装字体的位置

    在Ubuntu上安装了Oracle 8 jdk,在jre/lib中它具有各种fontProperties文件和一个包含字体的字体目录.但是,当安装OpenJdk 8时,jre/lib中的字体文件上没有 ...

最新文章

  1. c索引超出了数组界限_Lua数组、Lua迭代器
  2. 浅析JQuery中的html(),text(),val()区别
  3. 【闲聊产品】之七:投票真的有用么?
  4. .NET 泛型,详细介绍
  5. uva 1630——Folding
  6. 非递归实现二叉树(前序,中序,后序)c/c++实现
  7. 高德地图定位精度多少米_中美俄卫星定位精度分别是多少?美0.1米,俄10米,中国呢?...
  8. 让Android Studio支持系统签名(证书)
  9. 学校校车运营各项安全管理制度_学校校车接送安全管理制度(通用3篇)
  10. 轻知 | 为什么全球只有13组根域名服务器?
  11. python保存模型与参数_Pytorch - 模型和参数的保存与恢复
  12. eclipse maven项目导入Intellij问题处理
  13. HTMl5 的新特性
  14. 嵌入式从入门到精通的学习攻略
  15. qqkey获取原理_qqkey获取器下载
  16. pod中mysql配置文件修改_Pod中的secret,configmap,downwardapi的使用记录
  17. 【硬件工程师炼成之路】器件篇 铝电解电容 电感 磁珠
  18. 1微秒等于多少皮秒_皮秒(ps)是一个时间单位。它是这样换算的↓1秒s_圈子-新氧美容整形...
  19. HEU The message
  20. Android 异常 “Binary XML file line # : Error inflating class”

热门文章

  1. python 排列组合速度_Python实现的简单排列组合算法示例
  2. maya崩溃自动保存路径_xgen 分享在maya里制作头发失败经验
  3. 免费旅游项目html,HTML+CSS+JavaScript项目2 “说旅游”专题页制作_0518_连蕊.pptx
  4. OpenShift 4 Hands-on Lab (12) 通过 KubeFed 配置 OpenShift 联邦集群
  5. OpenShift 4 之通过直接访问内部的 Image Registry 操作容器镜像
  6. 你可能不知道的10个Blazor功能
  7. Entity Framework Core 3.1 和 Entity Framework 6.4 发布
  8. MsSql.RestApi - 构建ASP.NET REST API的最简单方法
  9. 浏览器linux安装失败,LINUX 上安装WAS 提示没有浏览器问题
  10. python 两点曲线_python机器学习分类模型评估