BlueImp JQuery上传在上传后未清空文件队列

4
我有两个问题,可能是相关的。我正在使用BlueImp的Upload插件将多个文件上传到ASP.NET MVC控制器,然后返回所需的JSON响应。上传由单击按钮触发。
我希望上传者为每个要上传的项目添加一个列表项(正常工作)。然后,我想刷新显示成功上传文件的列表。问题是,即使上传成功,旧文件仍然留在控件中。
例如,如果我成功上传两个文件,当我想要上传另外两个文件时,会发送四个文件到控制器。
第二个问题是,我正在使用progressall回调来监视所有文件是否已成功上传。由于某种原因,在回调内部应该执行的代码未被执行。代码已注释以指示问题发生的位置。
我怀疑该控件无法识别上传是否完成,因此无法执行成功上传码,然后无法清除文件。但我不知道为什么!
$('.filemanager-browse').fileupload({
            url: '/Files/UploadFile',
            dataType: 'json',
            singleFileUploads: false,
            add: function (e, data) {

                var queue = $("ul.queue");

                $(".upload-button").click(function () {

                    $.each(data.files, function (index, file) {
                        var queueItem = $("<li>Uploading: " + file.name + "</li>");
                        data.context = queueItem.prependTo(queue);
                    });

                    data.submit();
                });
            },
            progress: function (e, data) {

                $.each(data.files, function (index, file) {
                    /// Code to indicate the progress of individual uploads as the progress. Working fine.
                });

            },
            done: function (e, data) {

                $.each(data.files, function (index, file) {
                    /// Code to indicate that each file has been uploaded. Working fine.
                });

            },
            error: function (e, data) {

                $.each(data.files, function (index, file) {
                    /// Code to indicate any errors.
                });
            },
            progressall: function (e, data) {

                if (data.loaded == data.total) {
                    // SOURCE OF PROBLEM 2: 
                    // CODE IN HERE NOT EXECUTING AFTER SUCCESSFUL UPLOAD
                }
            },
            always: function (e, data) {

            },
            stop: function (e, data) {
                // Should code that is in progress all be in here instead?
             }
        });

你解决了吗?救命啊! - Andrew
1
还是一点头绪都没有。 - Graham
谢谢,无论如何!点赞 :) - Andrew
1个回答

1
我最终做了这个:

$('#fileupload').fileupload()
  .bind('fileuploadadd', function(e, data) {
    $(".files tr").remove();
  });

每当有人添加文件时,具有类“files”的表中的所有行都会从DOM中删除。根据您的标记,您可能需要选择不同的元素进行删除。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接