I am new to ionic and angular and right now I m trying to convert a file to base64 string. I am selecting file using cordova file plugin and the file could be image, pdf, doc or of any type. I have the full path to that file. How can I get the base64 string of that file? Can I use the file path to convert to base64 or what is the way to achieve this.
            Asked
            
        
        
            Active
            
        
            Viewed 1.6k times
        
    5 Answers
2
            phonegap-base64. It is cordova plugin and worked for me as well.
 
    
    
        Harish Kommuri
        
- 2,825
- 1
- 22
- 28
- 
                    Thanks Harrish ;) The simplest, easiest and to the point solution – aqarain Feb 22 '16 at 11:06
- 
                    it is not working for pdf files and returning empty string. – Zohra Gadiwala Jul 08 '17 at 09:01
1
            
            
        Use angular-base64 plugin for that. The link is here: https://github.com/ninjatronic/angular-base64.
It is easy to use. Inject the dependency in module as:
angular
    .module('myApp', ['base64'])
    .controller('myController', ['$base64', '$scope',function($base64, $scope) {
            $scope.encoded = $base64.encode('a string');
            $scope.decoded = $base64.decode('YSBzdHJpbmc=');
    }]);
And,remember to include the reference in index.html.
<script src="bower_components/angular-base64/angular-base64.js"></script>
 
    
    
        Sunil Lama
        
- 4,531
- 1
- 18
- 46
- 
                    Firstly, Thanks a lot Alex. but what should be the param, it takes string as param but I have pdf/img file path as param so how and what should I pass as param? – aqarain Feb 22 '16 at 09:11
- 
                    1If the param is image, you get the base64 encoded image and if the param is string you get the base64 encoded string. – Sunil Lama Feb 22 '16 at 09:19
1
            
            
        You could take a look at this:
How to use it:
angular
    .module('myApp', ['base64'])
    .controller('myController', [
        '$base64', '$scope', 
        function($base64, $scope) {
            $scope.encoded = $base64.encode('a string');
            $scope.decoded = $base64.decode('YSBzdHJpbmc=');
    }]);
You could do this:
 var fileReader = new FileReader();
    fileReader.onload = function(e)
    {
        // e.target.result contains the "string" of your file
    };
    fileReader.readAsText(yourfile);
 
    
    
        com.ulf
        
- 11
- 3
- 
                    Thanks a lot com.ulf. but what should be the param, it takes string as param but I have pdf/img file path as param so how and what should I pass as param? – aqarain Feb 22 '16 at 09:14
- 
                    Link only answers arent great - consider adding detail from both links in particular for this answer. – JF it Feb 22 '16 at 09:19
0
            
            
        try with
file.toString('base64');
you can also try reading these since it is basically a framework build on JS
 
    
    
        Community
        
- 1
- 1
 
    
    
        WebDevNewbieGirl
        
- 196
- 1
- 5
- 
                    
- 
                    In my case that was a picture(object) encoded binary form. For other types I cannot guarantee if this solution will work. – WebDevNewbieGirl Feb 22 '16 at 09:19
 
     
    