ファイル入力のリストを繰り返し処理して結果を1つの配列に保存することができれば幸いです。ここに私のコードのビットです。それは場合に役立ちます はまた、私は、私はこのコードを実行すると、結果として、私は '未定義' を取得FileReaderの出力を配列に保存しました
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]);
}
}
JAVASCRIPT ...
HTML
<input type="file" id="file1">
<input type="file" id="file2">
<button id="saveBtn">Save</button>
をAngularJSを使用しています。 これを達成する方法はありますか?ありがとう
これはjsfiddleを提供しますか? –
forループは 'readFile'関数が実行される前に実行されるのでしょうか?もしそうでなければ、ファイルを読み込む際に問題があれば 'FR.error'を使ってデバッグすることができます。 –
readFile関数はいつ呼び出されますか? –