js文件下载功能(Blob文件流)

接下来举例的是excel文件的下载

  • 核心方法
methods(){
	ExportXls(fileName) {
	  //请求后端的地址和参数
	  let url = '/exportXls'
	  let param = {}
	  //downFile为封装之后的axios请求方法
	  downFile(url, param).then((data) => {
        if (!data) {
          console.log("文件下载失败!")
          return
        }
        if (typeof window.navigator.msSaveBlob !== 'undefined') {
          window.navigator.msSaveBlob(new Blob([data], {type: 'application/vnd.ms-excel'}), fileName + '.xls')
        } else {
          let url = window.URL.createObjectURL(new Blob([data], {type: 'application/vnd.ms-excel'}))  //定义下载的链接
          let link = document.createElement('a')  //创建一个超链接元素
          link.style.display = 'none'   //隐藏该元素
          link.href = url  //创建下载的链接
          link.setAttribute('download', fileName + '.xls')
          document.body.appendChild(link)
          link.click()  //点击下载
          document.body.removeChild(link); //下载完成移除元素
          window.URL.revokeObjectURL(url); //释放掉blob对象
        }
      })
	}
}
  • 下面整理了一些常用文件type类型
扩展名文件类型
.xlsapplication/vnd.ms-excel
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.docapplication/msword
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.document
.pptapplication/vnd.ms-powerpoint
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentation
.pdfapplication/pdf
.vsdapplication/vnd.visio
.vsdxapplication/vnd.ms-visio.drawing
.zipapplication/zip
.csstext/css
.jstext/javascript
.jsonapplication/json
.htmltext/html
.xmltext/xml
.pytext/plain
.txttext/plain
.jpgimage/jpeg
.jpegimage/jpeg
.pngimage/png
.icoimage/x-icon
.svgimage/svg+xml
.gifimage/gif
.mp3audio/mpeg
.mp4video/mp4
.exeapplication/x-msdownload
.apkapplication/vnd.android.package-archive
.ttcfont/collection
.ttffont/ttf
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌萌哒小可爱啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值