en la primera llamada en JS FileReader es nulo, y base64string está vacío, pero en la segunda llamada el código funciona ... ¿por qué?
var base64String = ""; function imageUploaded(input) { var reader = new FileReader(); reader.onloadend = function () { base64String = reader.result.replace("data:", "").replace(/^.+,/, ""); console.log(base64String); } reader.readAsDataURL(input); return base64String; }