设置 res.setHeader('Content-Disposition','attachment;filename=test.zip');
3.后端设置正确的Content-Type响应头,然后设置Content-Disposition: attachment; filename="example.pdf"。 Content-Disposition是专门指示浏览器如何处理响应体的内容,被浏览器显示(inline)还是作为附件下载(attachment)。可以看出,Content-Disposition是专门处理文件下载的,这才是服务端指定文件下载的最佳实践。 (六)文件上...
设置为inline,如果浏览器支持该文件类型的预览,就会打开,而不是下载: response.setHeader("Content-Disposition","inline; filename=111.jpg"); 设置为attachment,浏览器则直接进行下载,纵使他能够预览该类型的文件。 response.setHeader("Content-Disposition","attachment; filename=111.jpg"); 特别说明:Chrome不设...
成功设置后,服务台Network可以看到: image.png 这样一来,js就能获取到响应header的Content-Disposition字段的值了
// 设置response的Header,注意这句,如果开启,默认浏览器会进行下载操作,如果注释掉,浏览器会默认预览。 // response.addHeader("Content-Disposition", // "attachment;filename=" + FileUtil.getOriginalFilename(path)); // response.addHeader("Content-Length", "" + buf.length); ...
attachment: 设置为此值意味着消息体应该被下载到本地,大多数浏览器会呈现一个 “保存为” 的对话框,并将filename的值预填为下载后的文件名 Content-Disposition: attachment; filename="filename.jpg" 因此,基于location.href='xxx'和window.open(xxx)的方式能实现下载就是基于Content-Disposition: attachment; fil...
parameters: An object of the parameters in the disposition (name of parameter always lower case and extended versions replace non-extended versions). Example:{filename: "€ rates.txt"} varcontentDisposition=require('content-disposition')vardestroy=require('destroy')varfs=require('fs')varhttp=requi...
Content-disposition的设置需要注意兼容firefox以及IE浏览器 function getContentDisposition(fileName, fileType) { return `attachment; filename=${encodeURIComponent(fileName)}.${fileType}; filename*=utf-8''${encodeURIComponent(fileName)}.${fileType};` ...
最后说一下,express里的response也提供了一个attachment()方法,这个方法会设置Content-Disposition头,并且会通过res.type()来设置Content-Type头,代码如下 代码语言:javascript 复制 router.get('/download',function(req,res,next){constfileStream=fs.createReadStream('test.zip');res.attachment('test123.zip');fi...
首先后端需要设置,否则前端获取不到头信息: response.setHeader("Access-Control-Expose-Headers", "Content-Disposition") response.setHeader("Content-Disposition", ...) 然后前端可以获取值: // 省略代码 var temp = res.headers["content-disposition"] var filenameRegex = /filename[^;=\n]*=((['"]...