JS 做文件和图片下载

139 阅读1分钟

做后台管理系统 经常会遇到导出列表excel的功能

一种方法可以用 window.open('下载地址,参数query拼接', '_blank')

还可以你请求服务端接口让你服务端返回给你下载地址 直接下载 不用再地址栏里拼接参数

最后一种 最近刚遇到的 之前用前两种方式比较多 首先请求服务端接口 get请求 query参数 请求完成之后 new Blob对象

const blob = new Blob([response.data],{
     type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
      })// type这里表示xlsx类型
      
    const downloadElement = document.createElement('a')
    const href = window.URL.createObjectURL(blob) // 创建下载的链接
    downloadElement.href = href
    downloadElement.download = '订单记录.xlsx' // 下载后文件名
    document.body.appendChild(downloadElement)
    downloadElement.click() // 点击下载
    document.body.removeChild(downloadElement) // 下载完成移除元素
    window.URL.revokeObjectURL(href) // 释放掉blob对象
    
    
    

原理暂时还不知道 求大神讲解。。。