uni-app 多端本地图片转base64 本地图片转base64

uni 适配多端 本地图片转base64 函数

多端转换统一函数

 function toBase64() {
	return new Promise((succeed,failure) => {
		uni.chooseImage({
			count: 1, //默认9
			sizeType: ['compressed'],
			sourceType: ['album','camera'], //从相册选择,摄像头选择
			success: (res) => {
				
				// #ifdef MP-WEIXIN
				uni.getFileSystemManager().readFile({
					filePath: res.tempFilePaths[0],
					encoding: 'base64',
					success: r => { // r.data
						succeed(r.data)
					},
					fail:err=>{
						failure(err)
					}
				})
				// #endif
				
				// #ifdef H5 
				uni.request({
					url: res.tempFilePaths[0],
					method:'GET',
					responseType:'arraybuffer',
					success: ress => {
						let base64 = uni.arrayBufferToBase64(ress.data); //把arraybuffer转成base64 
						// base64 = 'data:image/jpeg;base64,' + base64 //不加上这串字符,在页面无法显示的哦
						succeed(base64)
					},
					fail: e => {
						failure(e)
					},
				})
				// #endif
				
				// #ifdef APP
				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)
									// console.log(base64)
								}
						})
					},
					function(err){
						failure(err)
					}
				)
				// #endif
				
			}
		})
		
	})
};

使用

若要在页面渲染 res前务必加上 'data:image/jpeg;base64,'
	toBase64().then(res=>{
		//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)
					},
				})
  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值