XHR2Base64
function getBinary(file){ | |
var xhr = new XMLHttpRequest(); | |
xhr.open("GET", file, false); | |
xhr.overrideMimeType("text/plain; charset=x-user-defined"); | |
xhr.send(null); | |
return xhr.responseText; | |
} | |
function base64Encode(str) { | |
var CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; | |
var out = "", i = 0, len = str.length, c1, c2, c3; | |
while (i < len) { | |
c1 = str.charCodeAt(i++) & 0xff; | |
if (i == len) { | |
out += CHARS.charAt(c1 >> 2); | |
out += CHARS.charAt((c1 & 0x3) << 4); | |
out += "=="; | |
break; | |
} | |
c2 = str.charCodeAt(i++); | |
if (i == len) { | |
out += CHARS.charAt(c1 >> 2); | |
out += CHARS.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)); | |
out += CHARS.charAt((c2 & 0xF) << 2); | |
out += "="; | |
break; | |
} | |
c3 = str.charCodeAt(i++); | |
out += CHARS.charAt(c1 >> 2); | |
out += CHARS.charAt(((c1 & 0x3) << 4) | ((c2 & 0xF0) >> 4)); | |
out += CHARS.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >> 6)); | |
out += CHARS.charAt(c3 & 0x3F); | |
} | |
return out; | |
} | |
console.log(base64Encode(getBinary('http://www.google.fr/images/srpr/logo3w.png')) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment