ant-design-vue/components/vc-upload/src/traverseFileTree.js

26 lines
633 B
JavaScript

const traverseFileTree = (files, callback, isAccepted) => {
const _traverseFileTree = (item, path) => {
path = path || ''
if (item.isFile) {
item.file((file) => {
if (isAccepted(file)) {
callback([file])
}
})
} else if (item.isDirectory) {
const dirReader = item.createReader()
dirReader.readEntries((entries) => {
for (const entrieItem of entries) {
_traverseFileTree(entrieItem, `${path}${item.name}/`)
}
})
}
}
for (const file of files) {
_traverseFileTree(file.webkitGetAsEntry())
}
}
export default traverseFileTree