实战:从后台返回的数据中下载文件

17 篇文章 1 订阅
/**
 * 从后台返回的数据中下载Excel表格
 * @param {*} blob // 后台返回的文件流
 * @param {*} fileName// 下载的文件名
 */
export const downloadFn = (blob, fileName) => {
  const url = URL.createObjectURL(
    new Blob([blob], {
      type: 'application/vnd.ms-excel' // 下载文件的MIME类型
    })
  )
  const alink = document.createElement('a')
  alink.href = url
  alink.setAttribute('download', `${fileName}.xlsx`) // 或 alink.download = `${fileName}.xlsx`
  document.body.appendChild(alink)
  alink.click()
  URL.revokeObjectURL(url) // 释放内存
  document.body.removeChild(alink)
}

其他MIME类型:
/**
    'doc'        => 'application/msword',
    'pdf'        => 'application/pdf',
    'xls'        => 'application/vnd.ms-excel',
    'zip'        => 'application/zip',
    'mp3'        => 'audio/mpeg',
    'bmp'        => 'image/bmp',
    'gif'        => 'image/gif',
    'jpeg'       => 'image/jpeg',
    'jpg'        => 'image/jpeg',
    'png'        => 'image/png',
    'css'        => 'text/css',
    'html'       => 'text/html',
    'htm'        => 'text/html',
    'txt'        => 'text/plain',
    'xsl'        => 'text/xml',
    'xml'        => 'text/xml',
    'ppt'        => 'application/vnd.ms-powerpoint',
    'xhtml'      => 'application/xhtml+xml',
    'avi'        => 'video/x-msvideo',
    'bin'        => 'application/octet-stream',
    'exe'        => 'application/octet-stream',
    'so'         => 'application/octet-stream',
    'dll'        => 'application/octet-stream',
    'ai'         => 'application/postscript',
    'dir'        => 'application/x-director',
    'js'         => 'application/x-javascript',
    'swf'        => 'application/x-shockwave-flash',
    'xht'        => 'application/xhtml+xml',
    'mid'        => 'audio/midi',
    'midi'       => 'audio/midi',
    'rm'         => 'audio/x-pn-realaudio',
    'rpm'        => 'audio/x-pn-realaudio-plugin',
    'wav'        => 'audio/x-wav',
    'mpeg'       => 'video/mpeg',
    'mpg'        => 'video/mpeg',
    'movie'      => 'video/x-sgi-movie'
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值