JSFiddle - React, Tailwind, and code Playground
HTML
<input id="folderInput" type="file" v-on:change="getFiles" webkitdirectory directory multiple>
JavaScript
document.getElementById("folderInput").addEventListener('change', doThing);
/* function */
function doThing(){
var filesArray = Array.from(event.target.files);
readmultifiles(filesArray).then(function(results){
console.log("Result read :"+results.length);
})
}
function readmultifiles(files) {
const results = [];
return files.reduce(function(p, file) {
return p.then(function() {
return readFile(file).then(function(data) {
// put this result into the results array
results.push(data);
});
});
}, Promise.resolve()).then(function() {
// make final resolved value be the results array
console.log("Returning results");
return results;
});
}
function readFile(file) {
const reader = new FileReader();
return new Promise(function(resolve, reject) {
reader.onload = function(e) {
resolve(e.target.result);
};
reader.onerror = reader.onabort = reject;
reader.readAsArrayBuffer(file);
});
}