zoukankan      html  css  js  c++  java
  • JS之blob对象下载文件,解决word可能打开是乱码,xlsx文件打不开,图片显示格式不支持等问题

    请求接口后,接口返回的要是一个文件流的数据。

    请示到数据之后用blob对象进行对数据处理;

    downloadFile(file) {
          dwonloadFiles({ fileName: file.name }).then(response => {
            let blob = new Blob([response]);
            let downloadElement = document.createElement("a");
            let href = window.URL.createObjectURL(blob); //创建下载的链接
            downloadElement.href = href;
            console.log(file.name, "文件名");
            downloadElement.download = file.name; //下载后文件名
            document.body.appendChild(downloadElement);
            downloadElement.click(); //点击下载
            document.body.removeChild(downloadElement); //下载完成移除元素
            window.URL.revokeObjectURL(href); //释放掉blob对象
          });
        },

    如果直接这样写的的话,下载下来的文件,像word可能打开是乱码,xlsx文件打不开,图片显示格式不支持,因此,需要在请求接口的时候加上此属性:responseType: 'blob'

    // 知识链库下载文件
    export function dwonloadFiles(query) {
      return request({
        url: '/system/knowledgechain/download',
        method: 'get',
        params: query,
        responseType: 'blob'
      })
    }
    是我吖~
  • 相关阅读:
    Codeforces 931A&1312A&172A
    STL常用容器(deque&stack&queue)
    Codeforces 141A&1368A
    Tensorflow安装和配置
    Spark高可用配置
    Spark安装及环境配置
    SSH免密登录
    大数据集群linux环境搭配
    Spark学习之RDD算子
    Spark学习之再谈RDD
  • 原文地址:https://www.cnblogs.com/fkcqwq/p/15293307.html
Copyright © 2011-2022 走看看