2013-06-06 21 views
6

Tôi đang viết ứng dụng Android đầu tiên của mình bằng PhoneGap, nhưng tôi hơi bối rối bởi tài liệu dành cho FileReader. Tôi cần phải lấy một tập tin hình ảnh và chuyển đổi nó thành một chuỗi Base64 bằng cách sử dụng phương thức 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); 

Tôi hiểu khá nhiều tất cả ngoại trừ dòng cuối cùng: entry.file (thắng, thất bại). Không có mục nào được định nghĩa, nhưng tôi cho rằng đó là một đối tượng FileEntry. Vấn đề là tôi đã không có nhiều may mắn tìm tài liệu về cách tạo ra đối tượng FileEntry, và vào thời điểm nào tôi chuyển vào một đường dẫn tệp.

+0

có, tài liệu vẫn còn kinh khủng –

Trả lời

18

Ok, cuối cùng đã làm việc này. Tài liệu khủng khiếp trực tuyến! Tôi đang đăng mã của mình trong trường hợp những người khác gặp sự cố:

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

Hoạt động awesomely! –