美文网首页
js实现文件下载

js实现文件下载

作者: LiHDong | 来源:发表于2018-01-04 23:10 被阅读0次

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是保存的文件名

相关文章

网友评论

      本文标题:js实现文件下载

      本文链接:https://www.haomeiwen.com/subject/rwwdnxtx.html