zoukankan      html  css  js  c++  java
  • 前端下载文件重命名解决

    背景:从服务器下载的资源文件,无法修改名称,产品需要改名称的情况下,只能麻烦后台同学处理

    解决方案:

    /**
     * 获取 blob
     * @param  {String} url 目标文件地址
     * @return {cb}
     */
    function getBlob(url,cb) {
        var xhr = 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 {
      var link = document.createElement('a');
      var body = document.querySelector('body');
      link.href = window.URL.createObjectURL(blob);
      link.download = filename;
      // fix Firefox
      link.style.display = 'none';
      body.appendChild(link);
      link.click();
      body.removeChild(link);
      window.URL.revokeObjectURL(link.href);
    };
    }
    
    /**
    * 下载
    * @param  {String} url 目标文件地址
    * @param  {String} filename 想要保存的文件名称
    */
    export function download(url, filename) {
        getBlob(url, function(blob) {
            saveAs(blob, filename);
        });
    };
  • 相关阅读:
    TSQL 基础学习 04
    第13章 网络编程
    Oracle 第一天
    第11章 进程与多线程
    Linux 第06天
    构造Json对象串工具类
    第14章 数据库
    第07章 集合
    YARNMR 大数据第二天
    第12章 多媒体
  • 原文地址:https://www.cnblogs.com/ChineseLiao/p/14745612.html
Copyright © 2011-2022 走看看