From 9c9d8aafbcef005a2cc598454383ec65205d61ee Mon Sep 17 00:00:00 2001 From: git Date: Wed, 22 Nov 2017 10:20:14 +0900 Subject: [PATCH] fix #114 upload a folder of more then 100 files --- src/FileUpload.vue | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/FileUpload.vue b/src/FileUpload.vue index 388de24..bff6fc6 100644 --- a/src/FileUpload.vue +++ b/src/FileUpload.vue @@ -524,19 +524,26 @@ export default { ]) }) } else if (entry.isDirectory && this.dropDirectory) { - entry.createReader().readEntries((entries) => { - let files = [] - let forEach = (i) => { - if (!entries[i] || (this.maximum > 0 && files.length >= this.maximum)) { - return resolve(files) + let files = [] + let dirReader = entry.createReader() + let readEntries = () => { + dirReader.readEntries((entries) => { + let forEach = (i) => { + if ((!entries[i] && i === 0) || (this.maximum > 0 && files.length >= this.maximum)) { + return resolve(files) + } + if (!entries[i]) { + return readEntries() + } + this.getEntry(entries[i], path + entry.name + '/').then((results) => { + files.push(...results) + forEach(i + 1) + }) } - this.getEntry(entries[i], path + entry.name + '/').then((results) => { - files.push(...results) - forEach(i + 1) - }) - } - forEach(0) - }) + forEach(0) + }) + } + readEntries() } else { resolve([]) }