评论

writeFile保存图片踩坑记录

getFileSystemManager的API踩坑之旅

需求:把生成回来的分享太阳码存到本地,减少获取图片请求,提高效率

因为小程序生成的太阳码是个二进制流

所有根据文档按下面的方法存储图片到本地

fileSystem.writeFile({

filePath: wx.env.USER_DATA_PATH + '/图片名称',

data: API返回的二进制流,

encoding: 'binary',

})

一气呵成,开发者工具无法显示,打开真机调试,没问题,由于项目比较紧,真机正常就上线了

然后噩梦开始,经常有人反馈说生成不了太阳码,然后我这边换了一堆手机都无法复现问题

后来找了台老安卓,问题真的出现了(内心问候张小龙N遍)

解决方案:

fileSystem.writeFile({

filePath: wx.env.USER_DATA_PATH + '/图片名称',

data: wx.arrayBufferToBase64( API返回的二进制流 ),

encoding: 'base64',

})

结论:储存时要先把流转化成base64格式,再存到本地

噩梦结束

PS:小程序坑能少点吗



最后一次编辑于  2021-07-14  
点赞 3
收藏
评论

1 个评论

  • 123
    123
    2023-02-16

    用上面的两个方法测试都不行,基础库,2.3.0.

    安卓机能生成图片,但图片打不开,已损坏。

    2023-02-16
    赞同
    回复
登录 后发表内容