JS下载blob数据流相关

本文介绍了如何在JavaScript中处理Blob数据流。首先通过downLoadTemplate函数判断响应数据是否为Blob类型,如果是JSON则进行解析并显示消息,否则调用SaveFile函数进行文件保存。SaveFile函数利用Blob对象和创建的a标签实现文件的下载操作。

1.判断返回是否blob数据流

downLoadTemplate() {

      downloadmodel(函数体).then(res => {

        var _this = this

        if (res.data.type.includes('application/json')) {

          const reader = new FileReader()

          reader.onload = function () {

            const res = reader.result

            const result = JSON.parse(res)

            if (result.code == 0) {

              _this.$message.success(result.message)

            } else {

              _this.$message.error(result.message)

            }

          }

          reader.readAsText(res.data)

        } else {

          SaveFile(res.data,名称+后缀)

        }

      })

    },

2.SaveFile

export const SaveFile = (data, fileName) => {

    let index = fileName.lastIndexOf('.')

    let ss = fileName.substr(index + 1) //文件后缀

    let blob = new Blob([data])

    if (window.navigator.msSaveOrOpenBlob) {

        navigator.msSaveBlob(blob, fileName)

    } else {

        var link = document.createElement('a')

        link.href = window.URL.createObjectURL(blob)

        link.download = fileName

        link.click()

        window.URL.revokeObjectURL(link.href)

    }

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值