我会小心地仅根据名称声明文件重复。至少,您还应该考虑大小。虽然,这在 IE9 和更早版本中是不可能的,因为我们无法确定这些浏览器中客户端的文件大小。只是为了简单起见,让我们专门使用文件名......
一种方法是维护提交给上传者的文件名数组。onSubmitted
您可以在处理程序中添加到此列表。您可以提供一个onValidate
处理程序,如果该文件已存在于数组中,该处理程序将拒绝该文件。您的代码将如下所示:
var filenames = [];
var myUploader = new qq.FineUploader({
element: $('#test')[0],
multiple: true,
request: { endpoint: 'path/to/master/server/php/' },
autoUpload: false,
callbacks: {
onSubmitted: function(id, name) {
filenames.push(name);
},
onValidate: function(fileData) {
return qq.indexOf(filenames, fileData.name) < 0;
}
}
});
另外,只是为了好玩,为什么不直接使用 Fine Uploader 的 jQuery 插件,因为您似乎已经在您的项目中使用了 jQuery?上面的例子是使用下面的jQuery插件重写的:
var filenames = [];
$('#test').fineUploader({
multiple: true,
request: { endpoint: 'path/to/master/server/php/' },
autoUpload: false
})
.on("submitted", function(event, id, name) {
filenames.push(name);
})
.on("validate", function(event, fileData) {
return $.inArray(fileData.name, filenames) < 0;
});