writeFile保存图片踩坑记录
发布于 3 年前 作者 xiaqian 2670 次浏览 来自 分享

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

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

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

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:小程序坑能少点吗

回到顶部