base64或者blob路径图片转File

base64或者blob路径图片转File上传

objectURLToBlob(url) {
			return new Promise(resolve => {
				const http = new XMLHttpRequest()
				http.open('GET', url, true)
				http.responseType = 'blob'
				http.onload = function(e) {
					if (this.status == 200 || this.status === 0) {
						resolve(this.response)
					}
				}
				http.send()
			})
		},
async setCos() {

			let imgObj= await this.objectURLToBlob(this.imageBase64),  //base64  || blob

			let imageBase64File = new File([imgObj], '', {
				type: imgObj.type
			})
			// 上传图片到服务器....
			
		},

小白一个,学不动回家喂猪

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在uniapp中,将base64数据换为图片并保存到手机可以通过以下步骤实现: 1. 将base64字符串为二进制数组: ```javascript let base64Str = 'data:image/png;base64,iVBORw0KGg...'; // 以png格式为例 let arr = base64Str.split(','); let mime = arr[0].match(/:(.*?);/)[1]; let bstr = atob(arr[1]); let n = bstr.length; let u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } ``` 2. 创建Blob对象: ```javascript let blob = new Blob([u8arr], { type: mime }); ``` 3. 创建URL对象: ```javascript let url = window.URL.createObjectURL(blob); ``` 4. 创建img标签并设置src属性: ```javascript let img = new Image(); img.src = url; ``` 5. 将图片保存到手机: ```javascript let canvas = document.createElement('canvas'); let ctx = canvas.getContext('2d'); canvas.width = img.width; canvas.height = img.height; ctx.drawImage(img, 0, 0, img.width, img.height); canvas.toBlob(blob => { let fileReader = new FileReader(); fileReader.onload = () => { let buffer = new Uint8Array(fileReader.result); plus.io.requestFileSystem(plus.io.PRIVATE_DOC, fs => { let path = '_doc/' + Date.now() + '.png'; // 保存路径,可自定义 fs.root.getFile(path, { create: true }, fileEntry => { fileEntry.createWriter(writer => { writer.write(buffer); writer.onwriteend = () => { console.log('图片保存成功:' + path); }; writer.onerror = err => { console.error('图片保存失败:' + JSON.stringify(err)); }; }); }, err => { console.error('获取文件失败:' + JSON.stringify(err)); }); }, err => { console.error('获取文件系统失败:' + JSON.stringify(err)); }); }; fileReader.onerror = err => { console.error('读取文件失败:' + JSON.stringify(err)); }; fileReader.readAsArrayBuffer(blob); }, 'image/png'); ``` 注意:以上代码使用了uniapp的plus插件来保存图片到手机,需要在manifest.json文件中配置相关权限。如果不需要保存到手机,可以跳过第5步。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值