const fsm = wx.getFileSystemManager();
|
|
const FILE_BASE_NAME = 'tmp_base64src';
|
|
|
|
const base64src = function(base64data) {
|
|
return new Promise((resolve, reject) => {
|
|
// 添加时间戳生成唯一文件名
|
|
const timestamp = Date.now();
|
|
const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME}_${timestamp}.png`;
|
|
const buffer = wx.base64ToArrayBuffer(base64data);
|
|
|
|
fsm.writeFile({
|
|
filePath,
|
|
data: buffer,
|
|
encoding: 'binary',
|
|
success() {
|
|
resolve(filePath);
|
|
},
|
|
fail() {
|
|
reject(new Error('ERROR_BASE64SRC_WRITE'));
|
|
},
|
|
});
|
|
});
|
|
};
|
|
|
|
const unlink = function() {
|
|
return new Promise((resolve, reject) => {
|
|
// 获取临时文件列表
|
|
fsm.readdir({
|
|
dirPath: wx.env.USER_DATA_PATH,
|
|
success: (res) => {
|
|
// 删除所有tmp_base64src开头的临时文件
|
|
const promises = res.files
|
|
.filter(file => file.startsWith(FILE_BASE_NAME))
|
|
.map(file => {
|
|
return new Promise((res, rej) => {
|
|
fsm.unlink({
|
|
filePath: `${wx.env.USER_DATA_PATH}/${file}`,
|
|
success: res,
|
|
fail: rej
|
|
});
|
|
});
|
|
});
|
|
|
|
Promise.all(promises)
|
|
.then(resolve)
|
|
.catch(reject);
|
|
},
|
|
fail: reject
|
|
});
|
|
});
|
|
};
|
|
|
|
export default {
|
|
base64src,
|
|
unlink,
|
|
};
|