6

我正在使用 PhoneGap 编写我的第一个 Android 应用程序,但我对 FileReader 的文档有点困惑。我需要获取一个图像文件并使用 readAsDataURL() 方法将其转换为 Base64 字符串。从他们的文档中:

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);

除了最后一行:entry.file(win,fail)之外,我几乎了解所有这些。没有定义条目,但我认为它是一个 FileEntry 对象。问题是我没有太多运气找到关于如何生成 FileEntry 对象的文档,以及我在什么时候传入文件路径。

4

1 回答 1

19

好的,终于让它工作了。可怕的在线文档!我发布我的代码以防其他人遇到问题:

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 () { }
);
于 2013-06-06T20:32:38.807 回答