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);
        });
    };
  • 相关阅读:
    数据结构-索引
    CAS自旋volatile变量
    深入理解AQS
    EL表达式
    JSTL 核心标签库 使用
    JSP 九个隐含JSP对象
    jsp基本语法总结
    Commons FileUpLoad 两种上传方式解
    Servlet 异常处理
    Servlet 过滤器 Filter
  • 原文地址:https://www.cnblogs.com/ChineseLiao/p/14745612.html
Copyright © 2011-2022 走看看