Phonegap - FileReader 不调用/加载
Posted
技术标签:
【中文标题】Phonegap - FileReader 不调用/加载【英文标题】:Phonegap - FileReader doesn't invoke/load 【发布时间】: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 的空值... 【参考方案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 不起作用,还有其他问题以上是关于Phonegap - FileReader 不调用/加载的主要内容,如果未能解决你的问题,请参考以下文章
PhoneGap FileReader/readAsDataURL 不触发回调
Cordova 3.4 FileReader 不工作(没有 onloadend)
Cordova 文件插件 FileReader.readAsText 得到错误但不调用错误回调
PhoneGAP、iOS、“getFile”回调不调用 JavaScript 回调