uni 适配多端 本地图片转base64 函数
多端转换统一函数
function toBase64() {
return new Promise((succeed,failure) => {
uni.chooseImage({
count: 1,
sizeType: ['compressed'],
sourceType: ['album','camera'],
success: (res) => {
uni.getFileSystemManager().readFile({
filePath: res.tempFilePaths[0],
encoding: 'base64',
success: r => {
succeed(r.data)
},
fail:err=>{
failure(err)
}
})
uni.request({
url: res.tempFilePaths[0],
method:'GET',
responseType:'arraybuffer',
success: ress => {
let base64 = uni.arrayBufferToBase64(ress.data);
succeed(base64)
},
fail: e => {
failure(e)
},
})
plus.io.resolveLocalFileSystemURL(
res.tempFilePaths[0],
function(entry) {
entry.file(function(file) {
var fileReader = new plus.io.FileReader()
fileReader.readAsDataURL(file)
fileReader.onloadend = function(evt) {
let base64 = evt.target.result.split(",")[1]
succeed(base64)
}
})
},
function(err){
failure(err)
}
)
}
})
})
};
使用
若要在页面渲染 res前务必加上 'data:image/jpeg;base64,'
toBase64().then(res=>{
}).catch(err=>{
uni.showToast({
title:'图片获取失败',
icon:'none'
})
})
h5本地图片转base64
uni.request({
url: 本地图片路径,
method:'GET',
responseType:'arraybuffer',
success: ress => {
let base64 = uni.arrayBufferToBase64(ress.data);
},
})
app本地图片转base64
plus.io.resolveLocalFileSystemURL(
本地图片路径,
function(entry) {
entry.file(function(file) {
var fileReader = new plus.io.FileReader()
fileReader.readAsDataURL(file)
fileReader.onloadend = function(evt) {
let base64 = evt.target.result.split(",")[1]
console.log(base64)
}
})
}
)
微信小程序本地图片转base64
uni.getFileSystemManager().readFile({
filePath: 本地图片路径,
encoding: 'base64',
success: r => {
succeed(r.data)
console.log(r.data)
},
})