2013-06-06 11 views
6

Piszę moją pierwszą aplikację na Androida za pomocą PhoneGap, ale jestem nieco zdezorientowany przez dokumentację dla FileReadera. Potrzebuję pobrać plik obrazu i przekonwertować go na ciąg Base64 za pomocą metody readAsDataURL(). From their documentation:PhoneGap readAsDataURL

function win(file) { 
var reader = new FileReader(); 
reader.onloadend = function(evt) { 
    console.log("read success"); 
    console.log(evt.target.result); 
}; 
reader.readAsDataURL(file); 
}; 
var fail = function(evt) { 
console.log(error.code); 
}; 
entry.file(win, fail); 

rozumiem prawie wszystko to z wyjątkiem ostatniego wiersza: entry.file (Win, nie). Nigdzie nie zdefiniowano wpisu, ale zakładam, że jest to obiekt FileEntry. Problem polega na tym, że nie miałem dużo szczęścia znajdując dokumentację, jak wygenerować obiekt FileEntry i w którym momencie przechodzę ścieżkę do pliku.

+0

Tak, dokumentacja jest nadal okropna –

Odpowiedz

18

OK, w końcu udało się. Straszna dokumentacja online! Piszę swój kod na wypadek, gdy inni mają problemy:

window.resolveLocalFileSystemURI(filePath, 
    // success callback; generates the FileEntry object needed to convert to Base64 string 
    function (fileEntry) { 
     // convert to Base64 string 
     function win(file) { 
      var reader = new FileReader(); 
      reader.onloadend = function (evt) { 
       var obj = evt.target.result; // this is your Base64 string 
      }; 
      reader.readAsDataURL(file); 
     }; 
     var fail = function (evt) { }; 
     fileEntry.file(win, fail); 
    }, 
    // error callback 
    function() { } 
); 
+0

Działa niesamowicie! –