新建一个js文件,兼容多个平台
const fsm = uni.getFileSystemManager();
const FILE_BASE_NAME = 'tmp_base64src'; //自定义文件名
function base64src(base64data, cb) {
const [, format, bodyData] = /data:image\/(\w+);base64,(.*)/.exec(base64data) || [];
if (!format) {
return (new Error('ERROR_BASE64SRC_PARSE'));
}
// #ifdef MP-KUAISHOU
const filePath = `${ks.env.USER_DATA_PATH}/${FILE_BASE_NAME}.${format}`;
// #endif
// #ifdef MP-TOUTIAO
const { microapp, common } = uni.getEnvInfoSync();
const filePath = `${common.USER_DATA_PATH}/${FILE_BASE_NAME + Date.now()}.${format}`;
// #endif
// #ifdef MP-WEIXIN
const filePath = `${wx.env.USER_DATA_PATH}/${FILE_BASE_NAME + Date.now()}.${format}`;
// #endif
const buffer = uni.base64ToArrayBuffer(bodyData);
fsm.writeFile({
filePath,
data: buffer,
encoding: 'binary',
success() {
cb(filePath);
},
fail() {
return (new Error('ERROR_BASE64SRC_WRITE'));
},
});
};
export { base64src };
2、在需要使用的文件中引入并使用
import { base64src } from '../../utils/base64src.js'
base64src(this.data.shareQrImg, res => {
console.log(res) // 返回图片地址,直接赋值到image标签即可
});
3、如果需要网络图片转换成base64格式
let base64 = wx.arrayBufferToBase64(res.data);
let userImageBase64 = 'data:image/jpg;base64,' + base64;