Hi,
You need:
var file = new File(pathFile);
then
file.encoding = 'BINARY';
OK. Let's try this:
var base64Encode = function(/*str*/s)
//--------------------------------------
{
var ALPHA = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var n = s.length,
a = [], z = 0, c = 0,
b, b0, b1, b2;
while( c < n )
{
b0 = s.charCodeAt(c++);
b1 = s.charCodeAt(c++);
b2 = s.charCodeAt(c++);
var b = (b0 << 16) + ((b1 || 0) << 8) + (b2 || 0);
a[z++] = ALPHA.charAt((b & (63 << 18)) >> 18);
a[z++] = ALPHA.charAt((b & (63 << 12)) >> 12);
a[z++] = ALPHA.charAt(isNaN(b1) ? 64 : ((b & (63 << 6)) >> 6));
a[z++] = ALPHA.charAt(isNaN(b2) ? 64 : (b & 63));
}
s = a.join('');
a.length = 0;
a = null;
return s;
};
var fileToBase64 = function(/*File|str*/f)
//--------------------------------------
{
var s = null;
if( f && (f = new File(f)) && (f.encoding='BINARY') && f.open('r') )
{
s = f.read();
f.close();
}
return s && base64Encode(s);
};
// Client code
// ---
var b64 = fileToBase64("my/path/to/image.jpg");
@+
Marc