java下载文件_java下载文件到本地[通俗易懂]

java下载文件_java下载文件到本地[通俗易懂]//获取文件路径并创建一个出入流StringfilePath=”文件实际路径”;FileInputStreamfis=newFileInputStream(filePath);//创建输出流,向客户端输出数据ServletOutputStreamsos=response.getOutputStream();//获取文件名StringfileName=filePath.subs…

大家好,又见面了,我是你们的朋友全栈君。

//获取文件路径并创建一个出入流

String filePath=”文件实际路径”;

FileInputStream fis = new FileInputStream(filePath);

//创建输出流,向客户端输出数据

ServletOutputStream sos = response.getOutputStream();

//获取文件名

String fileName = filePath.substring(filePath.lastIndexOf(‘\\’) + 1);

//文件名转码

fileName = URLEncoder.encode(fileName, “UTF-8”);

//告诉客户端以什么解码方式打开文件

//response.setContentType(“UTF-8”);

//告诉客户端下载文件

if (request.getHeader(“User-Agent”).toLowerCase().indexOf(“firefox”) > -1)

{

response.setHeader(“Content-Disposition”, “attachment; filename*=UTF-8”” + fileName);

System.out.println(“firefox”);

} else {

response.setHeader(“content-disposition”, “attachment; filename=” + fileName);

}

//response.setHeader(“content-disposition”, “attachment; filename=” + fileName);

//response.setHeader(“content-type”, “img/jpeg”);

//输出

byte[] buf = new byte[1024];

int len = -1;

while((len = fis.read(buf)) != -1) {

sos.write(buf, 0, len);

}

//关流

sos.close();

fis.close();

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/157171.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • plsqldev715 注册码「建议收藏」

    plsqldev715 注册码「建议收藏」plsqldev715注册码QVJTSV-KNNSSK-G4UUL4-354LGX-FRZ8X3112243.957xs374ca

  • kali linux安装vmware tools过程详解「建议收藏」

    kali linux安装vmware tools过程详解「建议收藏」一、VMwaretools简介VMwareTools是VMware虚拟机中自带的一种增强工具,是VMware提供的增强虚拟显卡和硬盘性能、以及同步虚拟机与主机时钟的驱动程序。只有在VMware虚拟机中安装好了VMwareTools,才能实现主机与虚拟机之间的文件共享,同时可支持自由拖拽的功能,鼠标也可在虚拟机与主机之间自由移动(不用再按ctrl+alt),且虚拟机屏幕也可实…

  • Spring Boot 无侵入式 实现API接口统一JSON格式返回

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:小魏小魏我们去那里呀 blog.csdn.net/qq_34347620/article/details/10…

  • emwin实体按键_qt指示灯控件

    emwin实体按键_qt指示灯控件分享一个emWin软键盘控件[复制链接]本帖最后由glcd于2016-6-2716:30编辑花了两天时间做了个emWin软键盘控件,并命名为ButtonSKB控件:image001.png(20.29KB,下载次数:0)2016-6-2716:19上传前言:(1)ButtonSKB已经是1个控件,即可以像使用Button控件一样使用ButtonSKB。(2)ButtonSKB…

    2022年10月14日
  • T-SQL教程_sql server 2008使用

    T-SQL教程_sql server 2008使用文章目录T-SQL基础技术基本语法格式代码准备:(可以按照我的实例自行建立数据库)1、投影查询a、投影指定的列b、投影全部列c、修改查询结果的列标题d、去掉重复行2、选择查询a.表达式比较b.范围比较c.模式匹配d.空值使用代码示例:3、连接查询a.连接谓词b.以JOIN关键字指定的连接(1)内连接(2)外连接4、统计计算5、排序查询6、子查询T-SQL基础技术T-SQL语言中最重要的部分是它…

  • 原码反码补码运算规则_正数的原码反码补码相同吗

    原码反码补码运算规则_正数的原码反码补码相同吗一.机器数和真值在学习原码,反码和补码之前,需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1.比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011。如果是-3,就是10000011。那么,这里的00000011和10000011就是机器数。2、因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数100

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号