有时前端接收到的图片或者文件数据并不是一个线上的路径,有时需要在前端生成海报,在保存时,海报的路径一般会是 base64 的形式
将base64格式转化成图片格式
- 由于会在多个页面用到此功能,所以现将其封装为公共的函数并导出,使用时直接调用即可。
- uni.getFileSystemManager() 是 uniapp 提供的获取全局唯一的文件管理器
- base64 路径需要去掉 data:image/png;base64
- filePath 参数用于指定图片的临时路径,包含下载时的文件名
- writeFile 内部如果调用页面内的函数,需要提前保留 this (const that = this)
export function base64src(base64, cb){
let base64data = base64.replace(/^data:image/\w+;base64,/, "");
var fileManager = uni.getFileSystemManager();
fileManager.writeFile({
filePath: wx.env.USER_DATA_PATH + "/img.jpg",
data: base64data, // base64 数据
encoding: "base64", // 字符编码
success: (res) => {
cb(wx.env.USER_DATA_PATH + "/img.jpg")
},
file: (err) => {
},
});
}
执行函数后,会将临时路径返回给回调函数,再具体的功能页面中使用即可。
下载后,可以在下载文件夹中看到刚刚下载好的文件: