Tag Archives: ArrayBuffer

Decodificando Base64 Binario en Javascript

Actualmente todo los decodificadores de base64 en javascript son para cadenas, no funcionan para datos binarios; el ejemplo es cuando usas un elemento canvas y obtienes su representación base64 ( canvas.toDataURL() ) usualmente enviarás la cadena al servidor y ahí harás la decodificación en base64, si quieres procesar los datos en javascript encontrarás que fallará debido a que lo procesará como cadena.

Este script está usando los nuevos “array typed” (supongo que traducido como Arreglos con Tipo) de javascript, el uso básico es para decodificar una cadena base64 en un Uint8Array lo puedes utilizar como:

var uintArray = Base64Binary.decode(base64_string);

La otra llamada es cambiar el Uint8Array en un ArrayBuffer, esto es muy útil por ejemplo para subir un archivo mediante FormData ( formdata.append("file", arraybuffer, "test.png") ), puedes usarlo como:

var byteArray = Base64Binary.decodeArrayBuffer(base64_string);

Puedes checar el código aqui:
https://github.com/danguer/blog-examples/blob/master/js/base64-binary.js