Skip to content

Instantly share code, notes, and snippets.

@auxcoder
Created August 2, 2017 15:18
Show Gist options
  • Save auxcoder/70c73be65d28864f5e08ef53f54c541d to your computer and use it in GitHub Desktop.
Save auxcoder/70c73be65d28864f5e08ef53f54c541d to your computer and use it in GitHub Desktop.
Converting an image to base64 encode from its url
// from a component controller
toDataURL(
image_url
).then(
function onsuccess(response) {
ctrl.ngModel.$setViewValue(ctrl.previousImage);
},
function onError(response) {
$log.error(response);
}
);
function createRequest(method, url) {
var xhr = new XMLHttpRequest();
if ('withCredentials' in xhr) {
// XHR for Chrome/Firefox/Opera/Safari.
xhr.open(method, url, true);
} else if (typeof XDomainRequest != 'undefined') {
// XDomainRequest for IE.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// CORS not supported.
xhr = null;
}
return xhr;
}
function toDataURL(url) {
// build a promise
var _deferred = $q.defer();
if ($window.FileReader){
var xhr = createRequest('GET', url);
xhr.onload = function() {
var reader = new FileReader();
reader.onloadend = function onLoadData(event) {
_deferred.resolve(event.target.result);
}
// after get the data transfor it to base64
reader.readAsDataURL(xhr.response);
};
xhr.open('GET', url, true);
xhr.responseType = 'blob';
xhr.send();
}
else {
_deferred.reject('The client browser do not support FileReader()');
}
return _deferred.promise;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment