Skip to content

Commit 4d5eb68

Browse files
committed
fix #432
1 parent 44c4411 commit 4d5eb68

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

src/FileUpload.vue

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
:accept="accept"
1212
:capture="capture"
1313
:disabled="disabled"
14-
:webkitdirectory="directory && features.directory"
15-
:allowdirs="directory && features.directory"
16-
:directory="directory && features.directory"
14+
:webkitdirectory="iDirectory"
15+
:allowdirs="iDirectory"
16+
:directory="iDirectory"
1717
:multiple="multiple && features.html5"
1818
@change="inputOnChange"
1919
/>
@@ -406,6 +406,12 @@ export default defineComponent({
406406
exts = exts.map(function(value) { return value.trim() }).filter(function(value) { return value })
407407
return new RegExp('\\.(' + exts.join('|').replace(/\./g, '\\.') + ')$', 'i')
408408
},
409+
iDirectory() :any {
410+
if (this.directory && this.features.directory) {
411+
return true
412+
}
413+
return undefined
414+
}
409415
},
410416
watch: {
411417
active(active: boolean) {
@@ -625,13 +631,16 @@ export default defineComponent({
625631
const maximumValue = this.iMaximum
626632
627633
634+
635+
628636
// @ts-ignore
629637
const entrys: any = el.webkitEntries || el.entries || undefined
630638
if (entrys?.length) {
631639
return this.getFileSystemEntry(entrys).then((files) => {
632640
return this.add(files) as VueUploadItem[]
633641
})
634642
}
643+
635644
636645
if (el.files) {
637646
for (let i = 0; i < el.files.length; i++) {
@@ -956,14 +965,14 @@ export default defineComponent({
956965
return Promise.resolve(file)
957966
}
958967
// 后缀
959-
if (file.name && this.iExtensions) {
968+
if (file.name && this.iExtensions && file.type !== "text/directory") {
960969
if (file.name.search(this.iExtensions) === -1) {
961970
return Promise.reject(new Error('extension'))
962971
}
963972
}
964973
965974
// 大小
966-
if (this.size > 0 && file.size !== undefined && file.size >= 0 && file.size > this.size) {
975+
if (this.size > 0 && file.size !== undefined && file.size >= 0 && file.size > this.size && file.type !== "text/directory") {
967976
return Promise.reject(new Error('size'))
968977
}
969978
@@ -1036,7 +1045,7 @@ export default defineComponent({
10361045
form.append(key, value)
10371046
}
10381047
}
1039-
// @ts-ignore
1048+
10401049
// Moved file.name as the first option to set the filename of the uploaded file, since file.name
10411050
// contains the full (relative) path of the file not just the filename as in file.file.filename
10421051
// @ts-ignore

0 commit comments

Comments
 (0)