当前位置:   article > 正文

文件流下载(blob)_c# 下载blob文件

c# 下载blob文件
  1. downloadFile () {
  2. const _this = this
  3. axios({
  4. url: this.url,
  5. method: this.method,
  6. responseType: 'blob',
  7. params: this.method === 'get' ? this.data : undefined,
  8. data: this.method === 'post' ? this.data : undefined
  9. }).then(res => {
  10. const fileData = res.data
  11. const fileReader = new FileReader()
  12. fileReader.onload = function () {
  13. try {
  14. const jsonData = JSON.parse(this.result)
  15. if (jsonData.error) {
  16. throw new Error(`${jsonData.error.message}`)
  17. }
  18. } catch {
  19. // 解析成对象失败,说明是正常的文件流
  20. const content = res.data
  21. // 构造一个blob对象来处理数据
  22. const blob = new Blob([content])
  23. const link = document.createElement('a')
  24. // 获取headers中的filename文件名
  25. const temp = res.headers['content-disposition'].split(`filename*=UTF-8''`)[1]
  26. const fileName = decodeURIComponent(temp)
  27. link.style.display = 'none'
  28. link.href = URL.createObjectURL(blob)
  29. link.setAttribute('download', fileName)
  30. document.body.appendChild(link)
  31. link.click()
  32. document.body.removeChild(link)
  33. }
  34. }
  35. fileReader.readAsText(fileData)
  36. })
  37. }

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号