收藏
回答

writeFileSync在PC版小程序中写入binary文件大小为0KB?

上周使用正常,本周PC端小程序写入文件显示文件大小为0KB,开发工具和手机端正常

先说明一下,本身方法使用是为了将后台的base64数据储存到本地的,实际上encoding是支持base64的,但我也不记得一开始为什么不直接write base64了hhhhh

目前解决方法是直接改成了base64写入,但仍然想搞清楚为什么binary无法写入了,毕竟之前使用一切正常

问题方法:FileSystemManager.writeFileSync(string filePath, string|ArrayBuffer data, string encoding)

问题参数:其中data类型为arrayBuffer,encoding为binary

代码片段:https://developers.weixin.qq.com/s/tWsl0im37ZrK

// base64字符串,取代前缀
var data = url[e.target.dataset.index].replace('data:image/jpeg|png|jpg|png;base64,', '');
// 转换为arrayBuffer
var arrayBuffer = wx.base64ToArrayBuffer(data);
let fs = wx.getFileSystemManager();
var time = new Date().getTime();
// 命名
const filePath = `${wx.env.USER_DATA_PATH}/${name}${e.target.dataset.index}${time}.png`;
// 写入binary数据
fs.writeFileSync(filePath, arrayBuffer, 'binary');
最后一次编辑于  2021-06-24
回答关注问题邀请回答
收藏
登录 后发表内容