文件下载的几种方式

209 阅读1分钟

小知识,大挑战!本文正在参与“           程序员必备小知识           ”创作活动

文件下载有很多方式,有常用的或者不常用的,以下列出了一些文件的下载方式可以作为参考.

1.window.open("url");

2.window.location.href="url";

3.添加 download 属性 和 href 链接

	elementA.setAttribute('href', 'data:text/plain;charset=utf-8,' + JSON.stringify(json1));
 	elementA.setAttribute('download', +new Date() + ".tpl");

完整的代码如下:

function downFile() {
  var elementA = document.createElement('a');
  
  elementA.setAttribute('href', 'data:text/plain;charset=utf-8,' + JSON.stringify(json1));
  elementA.setAttribute('download', +new Date() + ".tpl");
  elementA.style.display = 'none';
  document.body.appendChild(elementA);
  elementA.click();
  document.body.removeChild(elementA);

4.生成一个blob二进制文件,href指向blob地址 和设置 download

//文件的名称为时间戳加文件名后缀
elementA.download = +new Date() + ".tpl";

//生成一个blob二进制数据,内容为json数据
var blob = new Blob([JSON.stringify(jsonObj)]);
//生成一个指向blob的URL地址,并赋值给a标签的href属性
elementA.href = URL.createObjectURL(blob);

完整的代码如下:

function downFlie() {
      // 创建a标签
      var elementA = document.createElement('a');
      
      //文件的名称为时间戳加文件名后缀
      elementA.download = +new Date() + ".tpl";
      elementA.style.display = 'none';
      
      //生成一个blob二进制数据,内容为json数据
      var blob = new Blob([JSON.stringify(jsonObj)]);
      
      //生成一个指向blob的URL地址,并赋值给a标签的href属性
      elementA.href = URL.createObjectURL(blob);
      document.body.appendChild(elementA);
      elementA.click();
      document.body.removeChild(elementA);
}

5.通过创建iframe的方式

//导出
//method方法:
handleExport(row) {
      var elemIF = document.createElement('iframe')
      elemIF.src = 'user/downloadExcel?snapshotTime=' + formatDate(new Date(row.snapshotTime), 'yyyy-MM-dd hh:mm') +
                    '&category=' + row.category 
      elemIF.style.display = 'none'
      document.body.appendChild(elemIF)
    }