Bootstrap

blob 和 base64 相互转换

一、blob 转 base64

1. 方法

// blob 转 base64
function blobToDataURI(blob, callback) {
  var reader = new FileReader();
  reader.readAsDataURL(blob);
  reader.onload = function (e) {
    callback(e.target.result);
  };
}

2. 使用方法

//blob格式转换为base64格式
blobToDataURI(blob, function (result) {
  	// 这里面写对应的方法
  	// result是转换后的数据
});

二、base64 转 blob

1. 方法

// base64 转 blob
function dataURItoBlob(base64Data) {
    var byteString;

    if(base64Data.split(',')[0].indexOf('base64') >= 0)
        byteString = atob(base64Data.split(',')[1]);//base64 解码
    else{
        byteString = unescape(base64Data.split(',')[1]);
    }
    var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];//mime类型

    // var arrayBuffer = new ArrayBuffer(byteString.length); //创建缓冲数组
    // var ia = new Uint8Array(arrayBuffer);//创建视图
    var ia = new Uint8Array(byteString.length);//创建视图
    for(var i = 0; i < byteString.length; i++) {
        ia[i] = byteString.charCodeAt(i);
    }
    var blob = new Blob([ia], {
        type: mimeString
    });
    return blob;
}  

2. 使用方法

// base64 转 blob
var blob = dataURItoBlob(base64Data);
;