我正在尝试为我的用户更好地上传单个文件。我目前使用Uploadify进行所有图片上传。我有一个弹出对话框,其中包含一个Uploadify控件和一个文本框,用户可以在其中为图像添加注释。
我已将multi=false
和queueSizeLimit=1
设置为将Uploadify限制为每次上传一个文件。因此,如果队列中存在文件并且用户尝试选择另一个文件,则他/她会收到一条警告消息:The number of files selected exceeds the remaining upload limit (0)
我想覆盖此默认行为并替换队列中的文件。 (如果当前没有上传)。这将是我的用户想要的便利功能。这将阻止他们手动取消队列中的文件。
有谁知道如何实现这种行为?
答案 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
功能,因为默认情况下取消文件会将文件标记为已取消,然后在短暂延迟后将其淡出。相反,我们立即隐藏该文件的上传栏,使其看起来好像文件已被换出,而我们正在做的是将另一个文件添加到队列然后删除以前的文件。