https://scarletsky.github.io/2016/07/03/download-file-using-javascript/
http://blog.csdn.net/androidmi/article/details/7519243
通过ajax请求服务器实现文件下载是我们在网页开发过程中经常遇到的需求,我的解决方案有两种:
有可用的url
这种情况下可以可以通过创建<a>
并模拟点击来实现唤醒下载窗口,代码如下:
let a = document.createElement('a');
a.href = url;
a.download = 'filename.txt';
a.click();
只要为<a>
标签添加 download
属性,我们点击这个链接的时候就会自动下载文件了。download
的属性值是可选的,它用来指定下载文件的文件名。
无可用的url
此时就需要通过ajax向后台脚本发起请求,后台的node.js
响应代码如下
res.set({
'Content-Type': 'application/octet-stream',
'Content-Disposition': 'attachment; filename=filename.txt',
'Content-Length': 1000
});
//file是服务器上的文件的具体路径
fs.createReadStream(file).pipe(res);
响应头设为application/octet-stream
,表示传递的数据是二进制流,这是由node.js
中流操作所产生的数据类型
Content-Disposition
设为attachment
会弹出对话框让用户下载,filename
是保存的文件名
网友评论