response的响应头,下载文件

前端代码

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>下载页面</title>
</head>
<body>
<a href="downloadFileServlet?filename=1.jpg">图片1</a>
<a href="downloadFileServlet?filename=2.jpg">图片2</a>
<a href="downloadFileServlet?filename=三国.mp4">三国视频1</a>
</body>
</html>

后端代码

@WebServlet("/downloadFileServlet")
public class DownloadFileServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置请求和响应编码request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获取请求参数String filename = request.getParameter("filename");ServletContext context = this.getServletContext();String realPath = context.getRealPath("/img/" + filename);//加载进内存FileInputStream fis = new FileInputStream(realPath);//设置response的响应头String mimeType = context.getMimeType(filename);response.setHeader("content-type", mimeType);//获取文件的MIME类型//设置响应头的打开方式:content-disposition//解决中文文件名问题//1.获取user-agent请求头String agent = request.getHeader("user-agent");//2.使用工具类方法编码文件名即可filename = DownLoadUtils.FileName(agent, filename);response.setHeader("content-disposition", "attachment;filename=" + filename);//将输入流的数据写出到输出流中ServletOutputStream os = response.getOutputStream();byte[] bys = new byte[1024 * 8];int len;while ((len = fis.read()) != -1) {os.write(bys, 0, len);}fis.close();}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doPost(request, response);}
}

response的响应头,下载文件相关推荐

  1. response设置响应头

    通过response设置响应行 设置响应行的状态码 setStatus(int sc) package com.learn.line;import java.io.IOException; impor ...

  2. 网页Request Headers请求头和Response Headers响应头

    Request Headers Accept:告诉服务器,客户机支持的数据类型 Accept-Encoding:告诉服务器,客户机支持的数据压缩格式 Cache-Control:缓存控制,服务器通过控 ...

  3. Request Headers请求头和Response Headers响应头

    Request Headers Accept:告诉服务器,客户机支持的数据类型 Accept-Encoding:告诉服务器,客户机支持的数据压缩格式 Cache-Control:缓存控制,服务器通过控 ...

  4. 使用 header 头下载文件

    导语 使用 header 头,实现浏览器下载文件.下面是实例代码,更详细的内容查看下方参考资料. 实例 <?php$file = $_GET['file'];// 文件地址是服务器保存路径,如 ...

  5. 使用Response.ContentType 来控制下载文件的类型

    服务器送给客户端的数据包类型可以是text/html文本,也可以是gif/jpeg图形文件,所以每次传输前,我们都必须告知客户端将要传输的文件类型,一般默认情况下为"Text/Html&qu ...

  6. node的响应头json文件

    { ".323": "text/h323", ".3gp": "video/3gpp", ".aab" ...

  7. Node.js实现下载文件

    第一种方式:使用原生的http模块 我们仅需要用到fs和http两个node.js的原生模块,不需要安装第三方模块,就可以实现文件的下载.代码如下: var fs = require('fs'); v ...

  8. 使用fetch()获取响应头的content-disposition拿到文件名,下载Excel文件

    需求就是下载一个Excel文件,包括下载,导出,都是调用后端的接口.因为文件名返回再了响应头的content-disposition.前端需要进行一个处理,拿到文件名. 先上代码 downloadDe ...

  9. Request Headers 和Response Headers——请求头和响应头

    前沿 作为一个前端开发工程师看不懂每条请求的请求头和响应头,实在是一件很难受的事情.最近花了一些时间整理了一篇文档,一起来看看前后端交互时每个资源的信息. 谷歌浏览器调试工具--查看请求资源的信息数据 ...

最新文章

  1. IdentityServer4 配置负载均衡
  2. 50题matplotlib从入门到精通
  3. Linux(1)-实用终端命令
  4. 数据结构实验之二叉树四:还原二叉树
  5. vue二级路由跳转后外部引入js失效问题解决方案
  6. Nginx配置共用80端口|端口转发端口映射
  7. linux 子shell
  8. fh 幅频特性曲线怎么画fl_放大电路幅频特性曲线的测试方法.PPT
  9. 笔记本装系服务器系统驱动,联想昭阳E4430A笔记本安装WINDOWS SERVER 2003 2008服务器版网卡驱动的问题...
  10. 虚拟机中Linux安装可视化界面
  11. 记Dorado7学习(5)
  12. Centos7 安装谷歌浏览器
  13. 在XX小学六一儿童节庆祝大会上的致辞
  14. Phython 数据类型
  15. ios : Provision Profile 添加设备 device的 udid
  16. 国产六大CPU厂商,近两年进展如何?
  17. 据说最厉害的黑客,出自少林寺、这是为什么?
  18. 华为云虚拟专用网络VPN常见问题解答
  19. UI设计师就业发展前景如何?
  20. nasm纠正性训练指南pdf_打开部队军事体能训练科学化的钥匙军人身体运动功能评估(EMPF)...

热门文章

  1. 电脑开机提示Exiting PXE ROM解决办法
  2. Virtualbox源码分析4:VMM虚拟化实现源码分析1
  3. 随学随考计算机应用基础作业1,【随学随练】统编版四年级下册语文《第一单元》一课一练带答案,快给孩子练习!...
  4. ElasticSearch搜索引擎(高级)
  5. 谷歌浏览器网盘倍速播放
  6. 【数据分析】python带你分析122万人的生活工作和死亡数据
  7. 微信小程序 navigator 导航
  8. 分享一个项目平台原型图
  9. mercury路由器重置后服务器无响应,路由器复位不了,重置后进不去如何解决
  10. unordered_set使用介绍