Uploadify - 更好的上传选择用户体验?

时间:2012-05-23 15:23:20

标签: jquery uploadify

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

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

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

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

1 个答案:

答案 0 :(得分: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功能,因为默认情况下取消文件会将文件标记为已取消,然后在短暂延迟后将其淡出。相反,我们立即隐藏该文件的上传栏,使其看起来好像文件已被换出,而我们正在做的是将另一个文件添加到队列然后删除以前的文件。