Plupload如何在UploadComplete之后继续上传

时间:2013-05-22 11:26:00

标签: jquery plupload

我正在使用plupload 1.5.7,jQuery Queue Widget,上传完成后添加文件开始上传按钮消失,替换为标签上传1/1文件

现在我无法添加其他文件,我需要刷新页面并上传其他文件。 我还尝试了 uploader.splice() uploader.refresh()方法,但没有成功。

上传后,一个或多个文件是否可以继续上传?

我的实际配置是:

$("#uploader").pluploadQueue({
    // General settings
    runtimes: 'html5,gears,flash,silverlight,browserplus',
    url: '/upload.php',
    max_file_size: '10mb',
    chunk_size: '1mb',
    unique_names: true,

    // Specify what files to browse for
    filters: [
        {title : "Image files", extensions : "jpg,png"}
    ],

    // Flash settings
    flash_swf_url: '/assets/js/plupload/plupload.flash.swf',

    // Silverlight settings
    silverlight_xap_url: '/assets/js/plupload/plupload.silverlight.xap',

    init: {

        FilesAdded: function(up, files) {},
        UploadComplete: function(up, files) {
            up.splice();
            up.refresh();
        }
    }
});

2 个答案:

答案 0 :(得分:7)

我习惯这样做(抱歉,现在无法测试),将我的初始化代码嵌入到我可以随时调用的函数中。

va initUploader = function () {
    $("#uploader").pluploadQueue({
        // General settings
        runtimes: 'html5,gears,flash,silverlight,browserplus',
        url: '/upload.php',
        max_file_size: '10mb',
        chunk_size: '1mb',
        unique_names: true,

        // Specify what files to browse for
        filters: [{
            title: "Image files",
            extensions: "jpg,png"
        }],

        // Flash settings
        flash_swf_url: '/assets/js/plupload/plupload.flash.swf',

        // Silverlight settings
        silverlight_xap_url: '/assets/js/plupload/plupload.silverlight.xap',

        init: {

            FilesAdded: function (up, files) {},
            UploadComplete: function (up, files) {
                // destroy the uploader and init a new one
                up.destroy();
                initUploader();
            }
        }
    });
};

$(document).ready(function(){initUploader();});

答案 1 :(得分:4)

您正在寻找的按钮仍然可用但未显示。 因此,您可以通过JS更改显示CSS选项,而不是重新初始化Uploader,如下所示:

uploader.bind('UploadComplete', function() {
  $(".plupload_buttons").css("display", "inline");
  $(".plupload_upload_status").css("display", "inline");
})

或者如果您在init函数中附加事件:

UploadComplete: function() {
  $(".plupload_buttons").css("display", "inline");
  $(".plupload_upload_status").css("display", "inline");
}

请注意,我在这个例子中使用了jQuery,但它也适用于普通的JS。