@@ -369,6 +369,7 @@ var uploadType = document.body.querySelector('.upload-type');
369369if (!uploadType) {
370370return;
371371}
372+ var classUploading = 'uploading';
372373var file = 'file';
373374var dirFile = 'dirfile';
374375var innerDirFile = 'innerdirfile';
@@ -382,6 +383,9 @@ ele && ele.classList.add(className);
382383function removeClass(ele, className) {
383384ele && ele.classList.remove(className);
384385}
386+ function hasClass(ele, className) {
387+ return ele && ele.classList.contains(className);
388+ }
385389function enableAddDir() {
386390var classHidden = 'hidden';
387391var classActive = 'active';
@@ -494,6 +498,7 @@ elProgress.style.width = '';
494498}
495499fileInput.disabled = false;
496500btnSubmit.disabled = false;
501+ removeClass(upload, classUploading);
497502}
498503function onLoad() {
499504location.reload();
@@ -531,6 +536,7 @@ xhr.upload.addEventListener('progress', onProgress);
531536}
532537xhr.open(form.method, form.action);
533538xhr.send(parts);
539+ addClass(upload, classUploading);
534540fileInput.disabled = true;
535541btnSubmit.disabled = true;
536542}
@@ -547,14 +553,15 @@ uploadProgressively(files);
547553return uploadProgressively;
548554}
549555function enableAddDragDrop(uploadProgressively) {
556+ var classDragging = 'dragging';
550557function onDragEnterOver(e) {
551558e.stopPropagation();
552559e.preventDefault();
553- addClass(e.currentTarget, 'dragging' );
560+ addClass(e.currentTarget, classDragging );
554561}
555562function onDragLeave(e) {
556563if (e.target === e.currentTarget) {
557- removeClass(e.currentTarget, 'dragging' );
564+ removeClass(e.currentTarget, classDragging );
558565}
559566}
560567function getFilesFromEntries(entries, onDone) {
@@ -607,7 +614,10 @@ getFilesFromEntries(entries, onDone);
607614function onDrop(e) {
608615e.stopPropagation();
609616e.preventDefault();
610- removeClass(e.currentTarget, 'dragging');
617+ removeClass(e.currentTarget, classDragging);
618+ if (hasClass(e.currentTarget, classUploading)) {
619+ return;
620+ }
611621fileInput.value = '';
612622if (!e.dataTransfer || !e.dataTransfer.files || !e.dataTransfer.files.length) {
613623return;
@@ -660,10 +670,10 @@ form.submit();
660670}
661671}
662672}
663- upload.addEventListener('dragenter', onDragEnterOver, false );
664- upload.addEventListener('dragover', onDragEnterOver, false );
665- upload.addEventListener('dragleave', onDragLeave, false );
666- upload.addEventListener('drop', onDrop, false );
673+ upload.addEventListener('dragenter', onDragEnterOver);
674+ upload.addEventListener('dragover', onDragEnterOver);
675+ upload.addEventListener('dragleave', onDragLeave);
676+ upload.addEventListener('drop', onDrop);
667677}
668678enableAddDir();
669679var uploadProgressively = enableUploadProgress();
0 commit comments