返回数据为arraybuffer的处理


最近在做一个上传的功能,上传之后后台判断如果文件有问题,则返回标注了错误信息的文件,然后自动下载成文件,因此涉及到了arraybuffer

首先,请求时的responseType的值设为arraybuffer,但是注意,这会引起一个问题,返回结构的data中所有内容都会是这种格式,包括json和字符串,因此,如果是其他的报错信息,也无法按之前的方式打印。

后台的标志位都无法获取,无法区分是否正确,因此,跟后台协商,添加请求头参数(或者修改请求头参数),通过请求头参数来判断正确错误。

数据处理:

1、文件格式信息

  let blob = new Blob([接收到的数据],{type: 'application/文件格式'})    一定要加[]

  然后创建a标签,设置路径(window.URL.createObjectURL(blob)),用.download设置文件名称,然后通过.click()来自动下载

2、文字信息

  let blob = new Blob([接收到的数据])

  然后使用fileReader对象进行数据转换和输出

  let reader = new FileReader()

  reader.readAsText(blob, 'utf-8')

  reader.onload = function() {

    console.log(reader.result)        //输出文字

  }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM