私はhttp://www.html5rocks.com/en/tutorials/file/dndfiles/に似たようなことをしています
私がやっていることは、選択したファイルの内容を一度に1つずつ読み取って、それらの行が正規表現テストに合格したことを検証することです。すべてのファイルの検証が完了したら、それに応じていくつかのボタンを更新(有効化/無効化)する必要があるため、コールバック機能
すべてが読み取られた後に何かを実行するコールバック関数を持つことは可能ですか?
HTML:
<input type="file" id="files" name="files[]" multiple />
Javascipt:
<script>
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
// files is a FileList of File objects. List some properties.
var validArray = [];
for (var i = 0, f; f = files[i]; i++) {
//Create new file reader
var r = new FileReader();
//On load call
r.onload = (function (f) {
return function (e) {
var contents = e.target.result;
var lines = contents.split('\n');
for(var i=0; i<lines.length; i++){
//Validate regex of line here
//If line does not pass, append file name to validArray and break
}
};
})(f);
r.readAsText(f);
}
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>