Просто чтобы быть предельно ясным, FileReader
ничего не скачивает.Он асинхронно считывает содержимое файла (как оно отображается на диске) в память.
Чтобы делать то, что вы хотите, просто следите за прочитанными файлами и вызывайте обратный вызов, когда все они сделаны:
document.querySelector('[type="file"]').change = function(e) {
handleFiles(toArray(e.target.files), function(results) {
// results is an Array containing the FileReader results.
alert('Done!');
});
function toArray(list) {
return Array.prototype.slice.call(list || [], 0);
}
function handleFiles(files, callback) {
var results = [];
files.forEach(function(file, i) {
var reader = new FileReader();
// Closure to capture the file information.
reader.onload = function(e) {
results.push(e.target.result);
if (results.length == files.length) {
callback(results);
}
};
reader.readAsDataURL(file);
});
}
Попробуйте: http://jsbin.com/epatel/3/edit#html,live