【问题标题】:Phonegap - FileReader doesn't invoke/loadPhonegap - FileReader 不调用/加载
【发布时间】:2015-09-01 13:04:04
【问题描述】:

我需要使用移动应用程序将照片上传到服务器。我使用以下代码读取文件的地方。

if (filesSelected.length > 0)
                {
                    alert("lenth great than zero");
                    var fileToLoad = filesSelected[0];

                    var fileReader = new FileReader();

                    fileReader.onload = function(fileLoadedEvent) {
                        var srcData = fileLoadedEvent.target.result; // <--- data: base64

                        var newImage = document.createElement('img');
                        newImage.src = srcData;
                        base64_string = newImage.outerHTML;
                        alert(srcData + "srouce data  now");

                    }
                    fileReader.readAsDataURL(fileToLoad);
                    *** SERVICE CALL Comes Here ***
                }

从代码 filesSelected.length 始终返回大于零 (0) 的值(即,如果图像可用)并警告“lenth 大于零”并且不警告 srcData +“srouce data now” .

我猜 fileReader 没有在它之后调用/调用。那么任何人都可以帮助我解决这个问题。

如果您还需要代码中的任何内容,请告诉我。

【问题讨论】:

  • 您使用的是哪个版本。文件API已更新。你可以试试 fileReader.onloadend 而不是 fileReader.onload。如果这不起作用,请告诉我们 phonegap 版本?
  • manifest.xml中是否有读/写权限
  • @Akki619,现在让我试试 fileReader.onloadend 并回复你
  • @SheraliTurdiyev,是的 manifest.xml 有它的权限
  • @Akki619,onloadend 为我工作,但 var srcData = fileLoadedEvent.target.result;结果我 srcData 的空值...

标签: android jquery phonegap-plugins filereader


【解决方案1】:

还有另一种方法(onloadend,不是onload)加载到cordova/phonegap API 3.6.0 文档中。 https://cordova.apache.org/docs/en/3.0.0/cordova_file_file.md.html

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

【讨论】:

  • evt.target.result 没有记录任何内容,它显示未定义,我们是否有任何替代方法,例如 onloadend 而不是 onload。
  • onloadend:在请求完成时调用(成功或失败)。 (函数)
  • 你应该使用onloadend方法
  • onload:读取成功完成时调用。 (功能) - 它来自文档。
  • 我在文档中找不到其他内容。也许,如果 onloadend 不起作用,还有其他问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-28
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多