base64上传oss_base64上传到oss

本文介绍如何将Base64编码的图片转换为Blob对象,并使用FormData上传到OSS。通过dataURLtoBlob函数将Base64转换为Blob,然后创建FormData对象,附加签名、accessKey、policy等信息,最后使用XMLHttpRequest发送POST请求进行上传。
摘要由CSDN通过智能技术生成

1. 将 base64转换为 blob

//**dataURL to blob**

function dataURLtoBlob(dataurl) {

debugger

var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],

bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);

while (n--) {

u8arr[n] = bstr.charCodeAt(n);

}

return new Blob([u8arr], { type: mime });

}

//**blob to dataURL**

function blobToDataURL(blob, callback) {

var a = new FileReader();

a.onload = function (e) { callback(e.target.result); };

a.readAsDataURL(blob);

}

var _file = dataURLtoBlob(c); // c就是base64字符串

//Blob_test();

function Blob_test(){

var blob;

if(!window.Blob)

console.log('不支持');

else

blob = _file;

if(window.URL){

document.getElementById("mybody").innerHTML = '文件下载';

}

}

Blob_test()

2. 将 blob上传到 oss

var form = new FormData()

form.append('signature', this.ossData.signature)

form.append('accessKey', this.ossData.accessKey)

form.append('policy', this.ossData.policy)

form.append('key', key)

var _fileBlob = dataURLtoBlob(base64) // c就是base64字符串

form.append('file', _fileBlob)

var req = new XMLHttpRequest()

req.open('post', this.actionUrl, false)

req.send(form)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值