js blobTobase 64,base 64 Toblob,ストリームダウンロードファイル

2176 ワード

1,
// atob() base64 to    
// btoa()     to base64
var str = 'javascript';
window.btoa(str)
//     "amF2YXNjcmlwdA=="
window.atob("amF2YXNjcmlwdA==")
//     "javascript"
      ,   window.btoa  Unicode                    .

  Unicode      UTF-8  ,        ,
function utf8_to_b64( str ) {
    return window.btoa(unescape(encodeURIComponent( str )));
}

function b64_to_utf8( str ) {
    return decodeURIComponent(escape(window.atob( str )));
}

 
2,base 64 ToBlob function base 64 ToBlob(urlData,type){var mime='image/png';//urlのヘッダを外しbyte var bytes=window.atob(urlData);//処理異常、asciiコードを0より小さいものを0 var ab=new ArrayBuffer(bytes.length)に変換;//生成ビュー(直接メモリ用):8ビット符号なし整数、長さ1バイトvar ia=new UIT 8 rray(ab);        for (var i = 0; i < bytes.length; i++) {         ia[i] = bytes.charCodeAt(i);         }         return new Blob([ab], {             type: mime         }); }
3,blobTobase64
                 console.log("base64Data",base64Data);//iVBORw0KGgoA                   var blob = base64ToBlob(base64Data);//上の2番目の方法blobToDataURL(blob,function(dataURL){debugger;console.log(「dataURL」,dataURL);//data:image/png;base 64,iVBORw 0 KGgoA//そしてimg src//dataURL処理に対してbase 64 Data consoleを切り取る.log("base64Data2",dataURL.split(',')[1]);//iVBORw0KGgoA                                          });
  function blobToDataURL(blob, callback) {     var a = new FileReader();     a.onload = function (e) {          callback(e.target.result);     }     a.readAsDataURL(blob); }   
 
4,base 64ダウンロード画像
var blob = base64ToBlob(data);                   var reader = new FileReader()                   reader.readAsDataURL(blob)                   reader.onload = function(e) {                   var a = document.createElement('a')                   var evt = document.createEvent('MouseEvents')                   evt.initEvent('click', false, false)//initEvent後の2つのパラメータはFFでa.download=imgName;//画像名a.href=e.target.result                       a.id = 'alink'                       a.dispatchEvent(evt)                   }