模拟下载文件(动态改变下载文件名)

/**根据 url + fileName下载文件,并更改文件名 - 就让风继续吹吧 - 博客园

* 获取 blob

* @param  {String} url 目标文件地址

* @return {cb}

*/function getBlob(url, cb) {

  varxhr =new XMLHttpRequest();

  xhr.open("GET", url,true);

  xhr.responseType = "blob";

  xhr.onload =function() {

    if(xhr.status === 200) {

      cb(xhr.response);

    }

  };

  xhr.send();

}/**

* 保存

* @param  {Blob} blob

* @param  {String} filename 想要保存的文件名称

*/function saveAs(blob, filename) {

  if (window.navigator.msSaveOrOpenBlob) {

    navigator.msSaveBlob(blob, filename);

  } else {

    varlink = document.createElement("a");

    varbody = document.querySelector("body");

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

    link.download = filename;

    // fix Firefoxlink.style.display = "none";

    body.appendChild(link);

    link.click();

    body.removeChild(link);

    window.URL.revokeObjectURL(link.href);

  }

}/** * 下载 * @param  {String} url 目标文件地址 * @param  {String} filename 想要保存的文件名称

* 将此方法暴露出去

*/export defaultfunction download(url, filename) {

  getBlob(url, function(blob) {

    saveAs(blob, filename);

  });

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容