【发布时间】:2016-07-01 11:50:20
【问题描述】:
我想问你,是否可以遍历文件输入列表并将结果保存在一个数组中。这是我的代码。 如果有帮助,我也会使用 AngularJS...
HTML
<input type="file" id="file1">
<input type="file" id="file2">
<button id="saveBtn">Save</button>
JAVASCRIPT
results = []; // array for storing results
/*file inputs*/
inputs = [document.getElementById('file1'), document.getElementById('file2')];
function readFile() {
for (var i = 0; i < inputs.length(); i++) {
if (inputs[i].files && inputs[i].files[0]) {
var FR = new FileReader();
FR.onload = function (event) {
results[i] = event.target.result; //array where I would like to store results
};
FR.readAsDataURL(inputs[0].files[0]);
}
}
}
//here I would like to write down all results
var btn = document.getElementById('saveBtn');
btn.onclick = function() {
readFile();
for(var i=0; i < inputs.length(); i++) {
console.log(results[i]);
}
}
当我运行此代码时,我得到“未定义”。 你们有任何想法如何实现这一目标吗?谢谢你
【问题讨论】:
-
你会为此提供jsfiddle吗...
-
也许你的for循环是在
readFile函数执行之前执行的?如果没有,如果读取文件有问题,您可以使用FR.error进行调试。 -
readFile函数什么时候调用?
-
不,这不是问题所在。在代码中,有一个事件,我调用 readFile(),然后创建一个循环。但是我想在这里简短,所以我跳过了它
标签: javascript arrays angularjs filereader