Created
August 2, 2017 15:18
-
-
Save auxcoder/70c73be65d28864f5e08ef53f54c541d to your computer and use it in GitHub Desktop.
Converting an image to base64 encode from its url
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // 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