javascript - 如何使用 blueimp 文件上传插件只上传一次文件?

标签 javascript jquery file-upload blueimp

我正在使用 bluimp jQuery-File-Upload-plugin .选择一些文件并上传是没有问题的,但是当我想在不刷新页面的情况下上传另一个文件时,第一个文件又被上传了。我的问题是上传后如何“取消设置”文件。这是我的源代码

Javascript:

$('#MappeFile').fileupload({
        dataType : 'json',
        autoUpload : false,
        maxNumberOfFiles : undefined,
        maxFileSize : 6000000,
        minFileSize : undefined,
        acceptFileTypes : /.+$/i,
        url : "/ajax/UploadFile.php",
        add : function(e, data) {
            $("#testUploadButton").on("click", function() {
                    $('#progress .bar').show();
                    if ($.browser.msie && parseInt($.browser.version, 10) < 10) {
                        $('#progress .bar').css({
                            "background" : "url(images/progressbar.gif) no-repeat",
                            "width" : "100%"
                        })
                    } else {
                        $('#progress .bar').css({
                            'background-color' : "#2694E8",
                            'width' : '0%'
                        });
                    }
                data.submit();
            })
        },
        change : function(e, data) {
            $.each(data.files, function(index, file) {
                console.info('Selected file: ' + file.name);
                filesCount++;
            });
        },
        drop: function(e, data) {
            $.each(data.files, function(index, file) {
                console.info('Selected file: ' + file.name);
                filesCount++;
            });
        },
        done : function(e, data) {
            $.each(data.result, function(index, file) {
                vOutput = "<tr>";
                vOutput += "<td>" + file + "</td>";
                vOutput += "<tr>";
                $("#MappeFileListe").append(vOutput);
                filesUploaded++;
                if (filesCount == filesUploaded) {
                    filesUploaded = 0;
                    filesCount=0;
                    $('#progress .bar').hide();
                }
            });
        },
        progressall : function(e, data) {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .bar').css('width', progress + '%');
        }
    });

HTML:

<div id="KundeMappe">
    <form id="MappeFile">
        <input type="file" id="MappeFileSelect" name="files[]" data-url="ajax/UploadFile.php" multiple/>
        <div id="progress">
            <div class="bar" style="width: 0%;"></div>
        </div>
        <input type="button" class="neuButton" value="upload" id="testUploadButton"/>
    </form>
    <table id="MappeFileListe"></table>
</div>

最佳答案

我自己找到了答案——上传后解绑按钮的点击事件就可以了:

add : function(e, data) {
            $("#testUploadButton").on("click", function() {
                    $('#progress .bar').show();
                    if ($.browser.msie && parseInt($.browser.version, 10) < 10) {
                        $('#progress .bar').css({
                            "background" : "url(images/progressbar.gif) no-repeat",
                            "width" : "100%"
                        })
                    } else {
                        $('#progress .bar').css({
                            'background-color' : "#2694E8",
                            'width' : '0%'
                        });
                    }
                data.submit();
                $("#testUploadButton").off("click")
            })
        },

关于javascript - 如何使用 blueimp 文件上传插件只上传一次文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13304838/

相关文章:

jquery - 如何从一组 HTML 片段文件中读取数据?

php - HTML5 切片,结果文件已损坏

javascript - 使用 AJAX 将头像上传到服务器

javascript - 为什么有些人在 JavaScript 中写出不同的多重条件?

javascript - 将对象传递给 jQuery.on()

javascript - 如何确定 Javascript 中字符串中表达式的类型?

javascript - 处理浏览器的 'ctrl+s' 按键事件

javascript - 如何通过单击操作调用 LightBox?

javascript - 我想获取所有选中复选框的值

java - Spring @Valid 无法在 Post Controller 中正常工作(多部分)