收藏
回答

小程序中能否使用FileReader把blob对象中的数据读取出来

API/组件名称 终端类型 微信版本 基础库版本
FileReader 客户端 6.6.1 1

在网络通信中,有时需要读取服务器发来的二进制数据,

本人的项目中,使用websocket,得到的这些二进制数据会被当作blob类型(在websocket的信息头中定义了数据类型为 0x2)


通常我们是可以把blob类型转化成别的类型的,但是都需要FileReader这个东西。比如

var reader = new FileReader();

var self = this;

reader.onload = function (e) {self.onTraitMsg(reader.result);}

reader.readAsArrayBuffer(msg);


我在网上找了一阵子,有的人说微信小程序提供这个接口,有的人说不提供。

请问到底提不提供,如果不提供,有没有替代的方法?



回答关注问题邀请回答
收藏

4 个回答

  • LastLeaf
    LastLeaf
    2018-01-12

    应该是目前只实现了String/ArrayBuffer类型的处理。详情请参考文档。

    2018-01-12
    有用
    回复 2
  • LastLeaf
    LastLeaf
    2018-01-10

    小程序没有 File API 。onSocketMessage 可以是 ArrayBuffer ,你可以从这个角度做。

    2018-01-10
    有用
    回复
  • Sunlight
    Sunlight
    2022-11-02

    后端的数据,通过了zlib压缩后(数据量大),进行的base64编码。我拿到后转码再解压,然后用new Blob(但小程序又不支持,这怎么办),而且后面还需要用到file 的api来处理,这也不支持。这条路还能行得通吗?求朋友建议

    2022-11-02
    有用
    回复 1
    • 🧸
      🧸
      2023-05-11
      请问你后面解决了吗,怎么解决的?
      2023-05-11
      回复
  • AieyLisyh
    AieyLisyh
    2018-01-12

    LastLeaf 谢谢,之前是按普通的浏览器的websocket写的,没有注意到api的区别。

    是不是只要换成微信的websocket的api,接收到的就一定是String或者ArrayBuffer类型的?

    2018-01-12
    有用
    回复
登录 后发表内容