ÒÔÏÂÊÇÍøÉϳµÄ´úÂë
function dataURLtoBlob(dataurl) {
const arr = dataurl.split(',');
//×¢Òâbase64µÄ×îºóÃæÖÐÀ¨ºÅºÍÒýºÅÊDz»×ªÒëµÄ
const _arr = arr[1].substring(0, arr[1].length - 2);
const mime = arr[0].match(/:(.*?);/)[1];
const bstr = atob(_arr);
let n = bstr.length
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {
type: mime
});
}
ÆäÖÐ
//×¢Òâbase64µÄ×îºóÃæÖÐÀ¨ºÅºÍÒýºÅÊDz»×ªÒëµÄ
const _arr = arr[1].substring(0, arr[1].length - 2);
ÕâÁ½¾äÊÇʲôÒâ˼.
×Ô¼ºÓõÄbase64ÖÐ, ×îºóÁ½Î»²»ÊÇÀ¨ºÅÒ²²»ÊÇÒýºÅ, ¶øÊDz»È·¶¨µÄÁ½Î»×Ö·û.
ÒÑÖªÓöµ½¹ýµÄÇé¿öÓÐ: "==" "I=" "CC"
Õâ¸ö²»Ì«Çå³þ£¬µ«ÊÇÎÒÖªµÀÁíÒ»ÖÖ base64 --> blob
µÄ·½Ê½£º
const dataURL = 'data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs='
fetch(dataURL)
.then(res => res.blob())
.then(blob => {
console.log('blob: ', blob)
})
¸ü¶à blob --> file --> dataURL(base64) | blobURL --> blob ת»»±Õ»·¿É²é¿´ÕâÀï
###µÃ¿´µ½ÔªÊý¾ÝɶÑù£¬Ëµ²»¶¨¾ÍÊÇÒòΪ¶¼¶à´øÁËÒ»¸ö×Ö·û
###base64 µÄתÂë¹æÔò¾ö¶¨ÁËÔÎÄ×Ö½Ú³¤¶È³ý3Óà1µÄʱºò»á==²¹È«£¬Óà2µÄʱºò»á=²¹È«£¬Õû³ýµÄʱºò¾Í²»»áÓеȺÅÁË
Ó¦¸Ã²»ÊÇÈ¥µôµÈºÅÓõģ¬¿´×¢ÊÍ˵ÊÇÈ¥µô×îºóÃæÖÐÀ¨ºÅºÍÒýºÅ
òËÆÊÇÔªÊý¾Ý°üº¬ÁËÖÐÀ¨ºÅºÍÒýºÅ£¿