Uploadify / uploadifive - 提交表单时清空队列

Uploadify / uploadifive - clearing queue on the submitting of form

我正在使用 uploadifive 插件进行多文件上传。它工作得很好,但现在我在我的实现中发现了一个错误,即在创建记录后队列没有被清除。如果创建了记录,则 uploadifive 应该显示新记录的空队列,但它显示以前上传的旧排队文件。我的逻辑是 Ajax 和 java-脚本驱动,我在提交表单后不刷新页面(如果页面刷新,则队列是白色和干净的,这是显而易见的:))。

以下是我用来为我的文件类型输入激活 uploadifive 的代码:

$('#xyz_uploader').uploadifive({
    'fileTypeDesc' : 'Image Files',
    'fileTypeExts' : '*.png;*.jpg;*.jpeg',
    'fileType'  : ['image/png','image/jpg','image/jpeg'],
    'auto'             : false,
    'checkScript'      : 'uploadify_envc.php?checkexist=true',
    'formData'         : {
        'timestamp' : curDateTime,

        'token'     : 'df324523adg34qtfgiui',
        'doc_type'     : 'docs',
        'somenewval'     : $("select#dropdown_control").val(),
    },
    'buttonText'          : 'Upload Document(s)',
    'queueID'          : 'xyz_uploader_queue',
    'auto'     : true,
    'uploadScript'     : 'uploadify_envc.php?injury='+$("select#dropdown_control").val(),
    'onUploadComplete' : function(file, data) { HandleUploadiFiveDocs(file,data,"docs");    }
});

当我使用 JS 函数提交数据时,我在 Ajax 调用的 return 中调用此函数来清除排队的文件:

    $('#xyz_uploader').uploadifive('clearQueue');

但这不起作用。我已经通过浏览器控制台和 java-script 函数对其进行了测试,但两者均无效。

所以你们能告诉我如何使用 java-script 命令清除上传队列吗?

首先使用

$('#xyz_uploader').uploadifive('destroy') 

然后重建对象对我有用。喜欢以下:

$('#xyz_uploader').uploadifive({
    'fileTypeDesc' : 'Image Files',
    'fileTypeExts' : '*.png;*.jpg;*.jpeg',
    'fileType'  : ['image/png','image/jpg','image/jpeg'],
    'auto'             : false,
    'checkScript'      : 'uploadify_envc.php?checkexist=true',
    'formData'         : {
        'timestamp' : curDateTime,

        'token'     : 'df324523adg34qtfgiui',
        'doc_type'     : 'docs',
        'somenewval'     : $("select#dropdown_control").val(),
    },
    'buttonText'          : 'Upload Document(s)',
    'queueID'          : 'xyz_uploader_queue',
    'auto'     : true,
    'uploadScript'     : 'uploadify_envc.php?injury='+$("select#dropdown_control").val(),
    'onUploadComplete' : function(file, data) { HandleUploadiFiveDocs(file,data,"docs");    }
});

试试吧,它对你们也有用。我在研究核心功能时发现了这一点。无论如何,没有得到这里的支持是令人失望的。

在您的 'onUploadComplete' 函数中添加这行代码

$(this).uploadifive('cancel', $('.uploadifive-queue-item').data('file'));

$('#xyz_uploader').uploadifive('cancel', $('.uploadifive-queue-item').data('file'));