您当前的位置: 首页 > 

彭世瑜

暂无认证

  • 0浏览

    0关注

    2791博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Vue:a标签点击和file-saver实现文件下载

彭世瑜 发布时间:2020-12-30 11:39:12 ,浏览量:0

目录
    • 方式一:a标签点击实现
    • 方式二:file-saver实现保存

方式一:a标签点击实现

  
    保存文件
  



export default {
  methods: {
    downloadFile() {
      var blob = new Blob(['Hello, world!'], {
        type: 'text/plain;charset=utf-8',
      });

      // 存在浏览器兼容性
      let href = URL.createObjectURL(blob);

      let alink = document.createElement('a');
      alink.style.display = 'none';
      alink.download = '文件名.txt'; //下载后文件名
      alink.href = href;
      document.body.appendChild(alink);
      alink.click();
      document.body.removeChild(alink); //下载完成移除元素
      
      URL.revokeObjectURL(href); //释放掉blob对象
    },
  },
};




方式二:file-saver实现保存

文档:https://www.npmjs.com/package/file-saver

cdn: https://www.jsdelivr.com/package/npm/file-saver

依赖

npm i file-saver

语法

FileSaver saveAs(Blob/File/Url, 
	optional DOMString filename, 
	optional Object { autoBom }
	)

示例


  
    保存文件
  



/**
 * 文件保存
 */
import FileSaver from 'file-saver';

export default {
  methods: {
    saveFile() {
      var blob = new Blob(['Hello, world!'], {
        type: 'text/plain;charset=utf-8',
      });
      FileSaver.saveAs(blob, '文件名.txt');
    },
  },
};




测试发现:

下载方式打开下载对话框行为a标签当前窗口触发浏览器下载file-saver新窗口先下载,再保存
关注
打赏
1665367115
查看更多评论
立即登录/注册

微信扫码登录

0.2581s