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();

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

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

(0)
上一篇 2022年7月8日 下午4:00
下一篇 2022年7月8日 下午4:16


相关推荐

  • 大数的阶乘算法

    大数的阶乘算法用data数组来存放阶乘的每一位数字,首先令第一位的数值为1,位数为1,然后将每次相乘的乘积存回数组,并循环处理每个数组中超过10的数,若数值超过10,则需要进位,将位数加1,原来的数除以10,商数加前一位数的数值后存回前一位数的数组中,再将余数存回原来位数的数组中。例如求5!的值步骤一:1!=1位数1数组内容0     0     0     1步骤二:2!=2

    2022年7月24日
    8
  • markdown数学公式(常用版介绍)

    markdown数学公式(常用版介绍)

    2020年11月8日
    220
  • 关于options请求方式

    关于options请求方式关于 options 请求方式 options 请求方法的主要用途有两个 1 获取服务器支持的 HTTP 请求方法 2 用来检查服务器的性能 例如 AJAX 进行跨域请求时的预检 需要向另外一个域名的资源发送一个 HTTPOPTIONS 请求头 用以判断实际发送的请求是否安全 为什么会出现 options 请求方式想必很多小伙伴在第一次遇到请求方式为 options 时 会有一丝诧异 有些人会百度百度 有些人可能压根不在乎 至于为什么会出现 options 请求 我也是百度查阅资料略知一二 这得从浏览器同源策略和跨域说

    2026年1月31日
    2
  • 数据结构:静态链表[通俗易懂]

    数据结构:静态链表[通俗易懂]首先我们让数组的元素都是由两个数据域组成,data和cur。也就是说,数组的每一个下标都对应一个data和一个cur。数据域data用来存放数据元素,也就是通常我们要处理的数据;而游标cur相当于单链表中的next指针,存放该元素的后继在数组中的下标。我们把这种用数组描述的链表叫做静态链表。数组的第一个元素,即下标为0的元素的cur就存放备用链表的第一个结点的下标;而数组的最后一个元素

    2025年7月4日
    3
  • JSP 内置对象request常见用法

    JSP 内置对象request常见用法随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)1、访问请求参数<ahref=”login.jsp?name=张三&sex=man&id=”>传递参数</a>login.jsp关键代码…

    2022年4月30日
    55
  • 木马GOP——盗QQ密码

    木马GOP——盗QQ密码 GOP是什么?GOP是GetOICQPassword的缩写,从这个名字我们就可以看出这是一个获取别人OICQ(现在应该称为QQ了)密码的木马软件!如果你还没有受到它的攻击,那可是幸运了,我认识它的过程可是代价惨重啊!  一天,我打开QQ,输入自己熟悉的密码后,静等着小企鹅的出现,谁知左等右等却等到了一个密码错误的提示窗口!再三确认自己的密码没有记错,当然也不会输错,那最大、最令人担心的可能

    2022年7月20日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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