第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在JavaScript中從base64字符串創(chuàng)建Blob

在JavaScript中從base64字符串創(chuàng)建Blob

在JavaScript中從base64字符串創(chuàng)建Blob我在字符串中有base64編碼的二進制數(shù)據(jù)。const contentType = 'image/png';const b64Data = 'iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8 /w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==';我想創(chuàng)建一個blob:包含此數(shù)據(jù)的URL并將其顯示給用戶。const blob = new Blob(????, {type: contentType});const blobUrl = URL.createObjectURL(blob);window.location = blobUrl;我還沒有弄清楚如何創(chuàng)建Blob。在某些情況下,我可以通過使用data:URL 來避免這種情況。const dataUrl = `data:${contentType};base64,${b64Data}`;window.location = dataUrl;但是在大多數(shù)情況下,data:URL非常大。如何Blob在JavaScript中將base64字符串解碼為對象?
查看完整描述

4 回答

?
揚帆大魚

TA貢獻1799條經(jīng)驗 獲得超9個贊

優(yōu)化(但不太可讀)的實現(xiàn):

function base64toBlob(base64Data, contentType) {
    contentType = contentType || '';
    var sliceSize = 1024;
    var byteCharacters = atob(base64Data);
    var bytesLength = byteCharacters.length;
    var slicesCount = Math.ceil(bytesLength / sliceSize);
    var byteArrays = new Array(slicesCount);

    for (var sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
        var begin = sliceIndex * sliceSize;
        var end = Math.min(begin + sliceSize, bytesLength);

        var bytes = new Array(end - begin);
        for (var offset = begin, i = 0; offset < end; ++i, ++offset) {
            bytes[i] = byteCharacters[offset].charCodeAt(0);
        }
        byteArrays[sliceIndex] = new Uint8Array(bytes);
    }
    return new Blob(byteArrays, { type: contentType });}


查看完整回答
反對 回復(fù) 2019-05-29
  • 4 回答
  • 0 關(guān)注
  • 1267 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號