Java Response实现文件下载
代码示例:
package com.xiaomin.filedownload;import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class Demo extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {/** 设置输出的格式*/String fileName = "lyf.jpg".toString(); // 文件的默认保存名response.reset();//清除首部的空白行response.setContentType("bin");//是设置文件类型的,bin这个文件类型是不存在的,浏览器遇到不存在的文件类型就会出现一个下载提示。response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");///** 读取磁盘上的文件*/InputStream inStream = new FileInputStream("D:/lyf_result.jpg");// 文件的存放路径// 循环取出流中的数据byte[] b = new byte[100];int len;try {while ((len = inStream.read(b)) > 0)response.getOutputStream().write(b, 0, len);//向客户端响应inStream.close();//关闭流} catch (IOException e) {e.printStackTrace();}}
}
Content-disposition 的说明如下:
Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)
服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt");
备注:这样浏览器会提示保存还是打开,即使选择打开,也会使用相关联的程序比如记事本打开,而不是IE直接打开了。
截图留念:
Java Response实现文件下载相关推荐
- Java隐含对象实验报告,JSP隐含对象response实现文件下载
一.简单介绍JSP隐含对象response实现文件下载 (1)在JSP中实现文件下载最简单的方法是定义超链接指向目标资源,用户单击超链接后直接下载资源,但直接暴露资源的URL也会带来一些负面的影响,例 ...
- Java HttpServletResponse 多文件下载
测试 Java HttpServletResponse 多文件下载(ZIP压缩) 1 项目结构 2 Tomcat 配置 3 测试代码 3.1 FileDownloadServlet 3.2 FileU ...
- HTTP Servlet Response完成文件下载、一次性验证码的实现
HTTP Servlet Response运行过程 通过Response设置响应行 package cn.aynortechnology.line;import java.io.IOException ...
- java实现高效文件下载
java实现高效文件下载 本文我们介绍几种方法下载文件.从基本JAVA IO 到 NIO包,也介绍第三方库的一些方法,如Async Http Client 和 Apache Commons IO. 最 ...
- java response 对象_82 Java基础 Response对象
1 Response对象概述 负责对浏览器进⾏响应的对象 什么是响应: 服务器接收到请求需要进行处理,将处理以后的结果显示回浏览器端(将这个过程称为是响应Response). 查看Servlet中的s ...
- java response 状态码_response(向客户端写入数据、对相应进行设置(状态码、响应头))...
一.向客户端写入数据 1.写入文字 protected voiddoGet(HttpServletRequest request, HttpServletResponse response) thro ...
- java实现远程文件下载
转自JAVA 实现远程文件下载 相信很多同学在实际的项目开发中都会遇到一个问题,如何跨服务下载文件?在传统SSH, SSH2, SSM架构中可能很少遇到这样的问题,但是在当前逐渐流行的微服务架构中,这 ...
- Java 之 Excel文件下载
Java 之 Excel文件下载 可以直接当作工具类使用 Controller业务层使用 做为Utils工具类使用 实例截图 图片三联 可以直接当作工具类使用 老规矩,废话不多说直接上代码: Cont ...
- java 下载加速_一种基于Java的大文件下载加速方法与流程
本发明涉及java/多线程技术领域,涉及一种加速文件下载装置,具体提供一种基于java的大文件下载加速方法. 背景技术: 现有的常用下载方式是基于浏览器的单线程下载.这种单线程下载的方式,是通过htt ...
- Java实现网络文件下载demo
Java实现网络文件下载demo import java.io.*; import java.net.HttpURLConnection; import java.net.URL;/*** @auth ...
最新文章
- IDEA中将代码块封装为方法,IDEA代码重构快捷键
- 摄像头和激光雷达都被蒙蔽?UCI首次提出针对自动驾驶多传感器融合感知的攻击...
- 盘点丨春节假期里你错过的人工智能重要新闻
- Traefik访问master节点不通的问题定位
- 学习笔记之Java程序设计实用教程
- C++ 手动实现简单的智能指针类
- 剑指offer 面试题62. 圆圈中最后剩下的数字
- 程序执行系统VC++程序出现“试图执行系统不支持的操作”
- LNMP 1.2 Nginx编译安装
- python编程和excel_Excel Vs. Python?为Excel正名
- 计算机会计什么是对应结转,会计科目对应关系
- 玩转IE之自动切换代理服务器
- 裸辞自学java和报培训班_程序员:裸辞十多天,不敢告诉家里人,假装每天上班,安静地成长...
- 2021金九银十面试季!java开发微信公众号图片上传功能
- Web安全技术—常见的攻击和防御
- 基于PHP的旅游管理系统
- 自动控制理论基本概念
- 基于GEE平台提取水体
- Centos 7yum安装LAMP
- [绝对原创] AKM项目轶事之FLYBACK飞机晚点索赔
热门文章
- ADS 2013 momentum仿真出错
- android高通camera驱动调试,高通Camera模块驱动指南资料
- Django 文件下载
- 音视频的简介及其I2S协议
- python打印字符串数组_python3字符串格式打印:如何从数组打印?
- python turtle库有什么用_turtle库使用简介
- pythonturtle编程_Python编程小记:turtle库
- 微PE装Win10详细教程 手把手教你UEFI+GPT方式安装Win10系统教程
- SAP SD pricing condition技术在系统里的一些练习
- 汽车行业DBC文件解析 | Python 解析dbc文件