美文网首页
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