原因:
小程序canvans 并不支持使用base64的格式,但是可以借用wx.getFileSystemManager
获取全局文件管理器来解决。
解决:
base64Save(base64File) { //base64File 需要加前缀
const fsm = wx.getFileSystemManager();//获取全局文件管理器
let extName = base64File.match(/data\:\S+\/(\S+);/)
if (extName) {
//获取文件后缀
extName = extName[1]
}
//获取自1970到现在的毫秒 + 文件后缀 生成文件名
let fileName = Date.now() + '.' + extName
return new Promise((resolve, reject) => {
//写入文件的路径
let filePath = wx.env.USER_DATA_PATH + '/' + fileName
fsm.writeFile({
filePath,
data: base64File.replace(/^data:\S+\/\S+;base64,/, ''), //替换前缀为空
encoding: 'base64',
success:(res)=>{
console.log('filePath',filePath); //路径:http://user.....
resolve(filePath);
},
fail() {
reject('写入失败');
},
});
});
},
至此本文就结束了,希望能帮到各位小伙伴!!