zoukankan      html  css  js  c++  java
  • 文件下载重命名

    一、正常情况下,我们都如此下载文件并修改文件名,在a标签上面添加download属性

    var link = document.createElement('a');
    link.href = file.url;
    link.download = file.name;
    //link.target="_blank";
    link.click();
    

      由于a.download跨域会失效,上面代码只可同域实现

    二、通过blob实现跨域下载并修改文件名(同样适用于URL地址)

    //通过文件下载url拿到对应的blob对象

    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();
      });
    

      js模拟点击a标签进行下载

    //下载文件
    saveAs(blob, filename) {
      var link = document.createElement('a');
      link.href = window.URL.createObjectURL(blob);
      link.download = filename;
      link.click();
    }
    

      调用(name 要携带后缀名)

      this.getBlob(file.url).then(blob => {
        this.saveAs(blob,'文件名.docx');
      });
    

      

  • 相关阅读:
    异常、中断、陷阱
    BigDecimal
    事务
    jsp的九大内置对象
    timer和ScheduledThreadPoolExecutor
    关于Python的导入覆盖解决办法
    RTTI
    Golang不会自动把slice转换成interface{}类型的slice
    Python中下划线的5种含义
    Python如何合并两个字典
  • 原文地址:https://www.cnblogs.com/jason-hhc/p/13828143.html
Copyright © 2011-2022 走看看