首页 > 其他分享 >js获取blob数据流中携带的msg消息

js获取blob数据流中携带的msg消息

时间:2023-02-20 18:35:15浏览次数:55  
标签:res js blob reader msg data 下载

问题:后端返回的失败 blob 数据流, 前端如何捕获展示

    业务需求,需要后端控制文件下载频率,用户在短时间内不可以重复下载文件,并返回消息提示 (剩余 XX 秒)。前端需要把返回数据msg消息展示弹出

        数据在浏览器的响应里可以看到

但是在打印的 res 中却找不到对应的msg,也就没有办法将对应内容展示出来

解:

        原来blob数据返回的数据无法直接在返回对象res中获取,需要将获取到的对象进行格式转换,后才能取到其中的后端返回的消息。

        请求成功发送,在 .then(res => {})中捕获要解析的对象  也可以在响应拦截器中做处理。

// 这里是将这部分方法做了封装
export default exportFile(res) {
     //  判断是否存在要转换的对象 ,如果可以下载文件则 res.data.type = application/vnd.ms-excel
​          if (res.data.type == 'application/json') { // 下载文件失败
​            // 实例化 FileReader
​                const reader = new FileReader ()
​            //  读取目标对象 res ,结果用字符形式表达
​                reader.readAsText(res.data , 'utf-8') 
            // 读取完后会获得 reader.result 要转化为可读取的JS对象
                read.onload = function() {
​                    const {msg} = Json.parse(reader.result)
​                    // 弹出转换后的 错误提示
​                    Message.waring (msg)
                }
                return
​          }
 
//   下方为下载方法
 //    下载: 获取文件名  
​    let fileName = decodeURIComponent(data.headers['content-disposition'].split('=')[1])
​    //  可以获取当前文件的一个内存URL
​    let objectUrl = URL.createObjectURL(new Blob([data.data]))
​    //   创建下载
​    const link = document.createElement('a')
​    link.download = fileName
​    link.href = objectUrl
​    link.click() 
}

 结果:成功!!

标签:res,js,blob,reader,msg,data,下载
From: https://www.cnblogs.com/panwudi/p/17138458.html

相关文章

  • JSP大文件上传解决方案
    ​ 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。先说下要求:PC端全平台支持,要求支持Windows,Mac,Linux......
  • 前端Blob数据流转JSON格式
    blobToJson=(blobData)=>{returnnewPromise((resolve,reject)=>{constreader:any=newFileReader()letjsonData:anyreader.readAsText(b......
  • 项目中TS的配置文件tsconfig.json
    1.快速搭建一个浏览器开发环境建立好文件夹后,打开VSCode,把文件夹拉到编辑器当中,然后打开终端,运行npminit-y,创建package.json文件。生成文件后,我们接着在终端中运行t......
  • threejs------注意事项!!!
    注意事项汇总相机的position(x,y,z)当相机的position设定后,如果模型展现的效果比较好,后续一般不要轻易修改y,因为可能会出现模型看不见的时候。......
  • JSON解析器-jackson-java对象转json、java对象转json-注解、java对象转json-List&Map
    JSON解析器-jackson-java对象转jsonJava对象转JSON1.使用步骤:1.导入jackson的相关jar包2.创建Jackson核心对象ObjectMapper3.调用Objec......
  • 【前端随笔】package.json的dependencies : "0.0.1"
    区分一下三个dependencies:dependencies、dev-dependencies、peer-dependencies,主要记录peer-dependencies 这里以项目project、将要引入的npm包package、以及package里......
  • js获取url中的查询参数
    //获取url中query//return{cate_id:'1',street_id:'0'}functiongetParams(){ varurl=location.search//获取url中"?"符后的字串 vartheRequest=newObj......
  • API接口聚全,价监控,订单接口,json格式数据
    行业背景:电商行业数据分析api接口,品牌监控api接口,商品价格监控api接口,电商数据采集,对品牌和电商企业推出的的数据分析产品,致力于帮助品牌方全面掌握市场行情和趋势,定位竞争......
  • Azure Blob NFS 3.0 支持
    今天来和大家聊聊最近使用率非常高的AzureNFS,在微软没有发布AzureBlobNFS3.0支持之前,有两种主要的方法可以将NFS作为服务。第一种是在GlobalAzure上通过AzureNetAppF......
  • 【C#】json使用汇总
    一、使用使用Newtonsoft.Json.DLL程序集。https://blog.csdn.net/qq_40681630/article/details/1206229091、创建需要序列化的类,设计类中的属性结构,封装,构造2、序列化......