前端如何获取响应头Content-Disposition中的filename

这篇具有很好参考价值的文章主要介绍了前端如何获取响应头Content-Disposition中的filename。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题:

后端在返回文件流时,将文件类型放在了响应头中,需要前端获取filename后手动添加文件名后缀。

代码:

前端:

downloadFile(response, fileName) {
	const headers = response.headers;
	const contentType = headers['content-type'];
	const blob = new Blob([response.data], { type: contentType });
	const temp = response.headers['content-disposition'];
	let filenameRegex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
	let matches = filenameRegex.exec(temp);
	let fileType = '';
	if (matches != null && matches[1]) {
		fileType = matches['input'].substring(matches['input'].lastIndexOf('.'));
	}
	var downloadElement = document.createElement('a');
	var href = window.URL.createObjectURL(blob); //创建下载的链接
	downloadElement.href = href;
	downloadElement.download = fileName + fileType; //下载后文件名
	document.body.appendChild(downloadElement);
	downloadElement.click(); //点击下载
	document.body.removeChild(downloadElement); //下载完成移除元素
	window.URL.revokeObjectURL(href); //释放掉blob对象
}

后端:

header默认只有六种 simple response headers (简单响应首部)可以暴露给外部:

  • Cache-Control
  • Content-Language
  • Content-Type
  • Expires
  • Last-Modified
  • Pragma

需要后端添加setHeader,将Content-disposition暴露出来以便前端访问获取。文章来源地址https://www.toymoban.com/news/detail-689497.html

response.setHeader("Access-Control-Expose-Headers", "Content-Disposition")
response.setHeader("Content-Disposition", ...)

到了这里,关于前端如何获取响应头Content-Disposition中的filename的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于前端如何下载后端接口返回content-type为application/octet-stream的文件

    后端接口定义为直接返回一个文件,如果带认证信息可以直接通过浏览器url下载,但是接口需要传headers认证信息,url上又不支持传相关信息 前端正常请求接口,设置responseType值为blob,这样取到接口返回的数据为Blob类型,之后通过由blob数据创建一个指向类型数组的URL来完成

    2024年02月03日
    浏览(51)
  • 解析 HTTP 204 No Content 状态码:一种无响应的响应

    简介 HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,它定义了客户端和服务器之间的通信规则。在HTTP协议中,状态码用于表示服务器对请求的响应结果。本文将重点解析HTTP状态码中的一种特殊状态码: HTTP 204 No Content 。 目的 本文的目的是帮助读者了解HTTP 204

    2024年02月04日
    浏览(49)
  • 如何获取HTTP请求时间与响应时间【附源码】

    今日遇到了一个问题,要去获取HTTP报文在 请求 和 响应 的时间,因为没有原生的API可以调用,所以需要一定的技巧~ 下面主体的框架和代码,我使用了form表单去构造一个POST请求,然后在Servlet中重写doPost()方法,然后实现获取请求时间和响应时间的代码逻辑 我们可以先去观察

    2024年02月08日
    浏览(68)
  • 安全头响应头(一)Content-Security-Policy

    一  Content Security Policy  CSP 中文翻译 ①  背景引入 ②  启用CSP的 两种 方法 ③    CSP语法 ④  CSP指令汇总   各个指令的解读 Content Security Policy (CSP)中blob:的用法   object-src blob  blob协议 ⑤ scp官网default-src指令解读    default-src指令 ⑥     CSP 常用 source 值 source相关参考 

    2024年02月07日
    浏览(36)
  • Nginx:设置响应header的content-type

    Nginx通常根据/etc/nginx/mime.types文件中类型设置content-type 有时需要根据实际需要指定content-type,比如对于下载,如果按照mime.types里面的定义: image/jpeg                            jpeg jpg; 那么当下载图片时,浏览器会在窗口内直接显示图片,而不是另存为文件 。 通过设置

    2024年02月12日
    浏览(37)
  • 浏览器响应数据类型(Content-Type)详解

    浏览器要显示内容,首先需要判断响应消息中的数据属于哪种类型。Web 可以处理的数据包括文字、图像、声音、视频等多种类型,每种数据的显示方法都不同,因此必须先要知道返回了什么类型的数据,否则无法正确显示。 这时,我们需要一些信息才能判断数据类型,原则

    2024年02月11日
    浏览(48)
  • 安全头响应头(三)​X-Content-Type-Options

    一  X-Content-Type-Options响应头                                             script标签  style  StyleSheet    JavaScript MIME type 文件扩展和Content-Type的映射关系 ①  基础铺垫 nginx(十八)mime.types的作用 ②  浏览器默认行为   ③    问题引入 现象及其相似  location和alias的搭配问

    2024年02月12日
    浏览(36)
  • 安全头响应头(一)Content-Security-Policy_add_header content-security-policy

    备注: 取决于’浏览器’的’支持’程度 [3]、来限制’哪些外部资源(如JavaScript、CSS、图像等)‘可以’被加载’,从’哪些url’加载 大大增强了’网页的安全性’,攻击者即使发现了漏洞,\\\'也没法’注入脚本 ②  启用CSP的两种方法 方式1: -- 添加’响应头’,注意\\\"单双引号\\\"嵌

    2024年04月28日
    浏览(31)
  • http响应Header:Content-Encoding=br怎么办?

    调用一个外部接口,偶然遇到响应的header里面content-encoding为br(如下图),一般而言,这个值是常见的gzip等,起初并未在意。 后来解析接口response body的时候,自然而然的使用 String content = org.apache.http.util.EntityUtils.toString(response.getEntity(), CHARSET) 转String,然而如看官所愿,大意

    2023年04月14日
    浏览(37)
  • HTTP请求头响应头的Content-type和Response Type是什么?

    写代码写着写着发现这些HTTP的概念还不清楚,缕一缕。 根据MDN的解释 Content-Type 实体头部用于指示资源的 MIME 类型 MIME 类型,即媒体类型,是一种标准,用来表示文档、文件或字节流的性质和格式。 根据MDN的解释: response.type的值可以是: basic 标准值,同源响应 cors 接收到一

    2024年02月15日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包