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'
      })
    }
    是我吖~
  • 相关阅读:
    【原创】用python写的一个监测本地进程CPU占用的程序
    CSS清除浮动的7种方法以及优缺点
    JavaScript函数作用域
    BOM的概念以及相关操作
    文件与文件系统的压缩与打包
    CSRF
    netstat 命令详解
    httpd安装
    ubuntu 耳机没声音
    Linu正常使用MobaXterm
  • 原文地址:https://www.cnblogs.com/fkcqwq/p/15293307.html
Copyright © 2011-2022 走看看