【前端】文件下载并且指定文件名称

同域下

var link = document.createElement('a');

link.href = file.url;

link.download = file.name;

link.target="_blank";

link.click();

跨域下

/**
*  url 下载地址
   name  文件名
*/
function load(url, name) {
  this.getBlob(url).then(blob => {
    this.saveAs(blob, name);
  });
}


getBlob(url) {
  return new Promise(resolve => {
   const xhr = new XMLHttpRequest();

   xhr.open('GET', url, true);
   xhr.responseType = 'blob';
   xhr.onload = () => {
    if (xhr.status === 200) {
     resolve(xhr.response);
   }
  };

  xhr.send();
  });
}



//下载文件

saveAs(blob, filename) {

  var link = document.createElement('a');

  link.href = window.URL.createObjectURL(blob);

  link.download = filename;

  link.click();

}

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐