Skip to content

Commit 8b7a76b

Browse files
committed
feat(tpl): skip accept dropped files if contains directory
1 parent 49aae88 commit 8b7a76b

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

src/tpl/asset/main.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,15 +486,27 @@
486486
e.stopPropagation();
487487
e.preventDefault();
488488
removeClass(e.currentTarget, 'dragging');
489+
fileInput.value = '';
489490

490-
if (!e.dataTransfer.files) {
491+
if (!e.dataTransfer || !e.dataTransfer.files || !e.dataTransfer.files.length) {
491492
return;
492493
}
493494

495+
var items = Array.prototype.slice.call(e.dataTransfer.items);
496+
if (items && items.length && items[0].webkitGetAsEntry) {
497+
for (var i = 0, len = items.length; i < len; i++) {
498+
var entry = items[i].webkitGetAsEntry();
499+
if (entry && entry.isDirectory) {
500+
return;
501+
}
502+
}
503+
}
504+
494505
if (optFile && optActive !== optFile) {
495506
optFile.focus();
496507
optFile.click();
497508
}
509+
498510
fileInput.files = e.dataTransfer.files;
499511
}
500512

src/tpl/asset/main.js.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -434,9 +434,19 @@ function onDrop(e) {
434434
e.stopPropagation();
435435
e.preventDefault();
436436
removeClass(e.currentTarget, 'dragging');
437-
if (!e.dataTransfer.files) {
437+
fileInput.value = '';
438+
if (!e.dataTransfer || !e.dataTransfer.files || !e.dataTransfer.files.length) {
439+
return;
440+
}
441+
var items = Array.prototype.slice.call(e.dataTransfer.items);
442+
if (items && items.length && items[0].webkitGetAsEntry) {
443+
for (var i = 0, len = items.length; i < len; i++) {
444+
var entry = items[i].webkitGetAsEntry();
445+
if (entry && entry.isDirectory) {
438446
return;
439447
}
448+
}
449+
}
440450
if (optFile && optActive !== optFile) {
441451
optFile.focus();
442452
optFile.click();

0 commit comments

Comments
 (0)