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) }