0

我正在尝试为我的用户更好地上传单个文件。我目前使用Uploadify进行所有图像上传。我有一个弹出对话框,其中包含一个 Uploadify 控件和一个文本框,用户可以在其中为图像添加评论。

我已经设置multi=false并将queueSizeLimit=1Uploadify 限制为每次上传一个文件。因此,如果队列中存在一个文件并且用户尝试选择另一个文件,他/她会收到一条警报消息:The number of files selected exceeds the remaining upload limit (0)

我想覆盖此默认行为并替换队列中的文件。(如果当前未上传)。这将是我的用户想要的便利功能。这将防止他们不得不手动取消队列中的文件。

有谁知道如何实现这种行为?

4

1 回答 1

3

这是我的解决方案:

var selectedFile = null;
$('#example').uploadify({       
    'swf'           : 'uploadify.swf',
    'uploader'      : 'uploadify.php',
    'cancelImg'     : 'cancel.png',
    'multi'         : false,
    'auto'          : false,
    'onSelect'      : function(file) {
        if(selectedFile !== null) {
            $('#example').uploadify("cancel",selectedFile.id);
        }
        selectedFile = file;
    },
    'onCancel' : function(file) {
        $("#" + file.id).hide();
    }

});

首先,您在外部范围内设置一个 var 以跟踪选定的一个文件,最初将其设置为 null。

您设置multi为 false 以便一次只能选择一个文件,然后onSelect在取消上一个排队文件(如果有一个)后使用该函数设置 selectedFile var。

我还在onCancel这里设置了函数,因为取消文件默认情况下会将文件标记为已取消,然后在短暂延迟后将其淡出。相反,我们直接隐藏该文件的上传栏,以使文件看起来好像已被换出,而实际上我们正在做的是将另一个文件添加到队列中,然后删除前一个文件。

于 2012-11-21T10:52:45.170 回答