我需要使用移动应用程序将照片上传到服务器。我使用以下代码来读取文件。
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 没有在它之后调用/调用。那么谁能帮我解决这个问题。
如果您需要代码中的更多内容,请告诉我。
最佳答案
cordova/phonegap API 3.6.0 文档中还有另一种加载方法(是 onloadend
,不是 onload
)。 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);
关于android - Phonegap - FileReader 不调用/加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32332453/