我为我的网站使用jQuery文件上传插件。
用户按下"浏览..."按钮我调用uploadadd回调。 但是,它会触发EVERYTIME用户添加文件。即使他添加了相同的文件。
我需要的是每个唯一文件只触发一次uploadadd回调,或者获取文件的唯一标识符,以便将其存储在一个文件数组中。在这种情况下,我可以检测文件是否已被选中。
我尝试使用回调功能的数据数组:
function (e, data) { }
但它只包含filesize / filename / filetype信息,因此我无法从中创建唯一的哈希,因为两个或多个文件可以具有相同的信息。
这是我的代码:
$('#fileupload').fileupload({
url: "/upload/",
dataType: 'json',
autoUpload: false,
add: function (e, data) {
console.log(data.files[0]);
qcount += 1;
$('#select-button').text(qcount + ' files');
data.submit();
});
});
在Uploadify插件中,我可以使用onAddQueueItem回调,但jQuery-File-Upload似乎没有相同的功能。
提前致谢!
答案 0 :(得分:0)
尝试这样的事情:
$('#fileupload').fileupload({
url: "/upload/",
dataType: 'json',
autoUpload: false,
add: function (e, data) {
data.files = $.map(data.files, function(file,i){
if ($.inArray(file.name,currentfiles) >= 0) {
alert("file exists");
return null;
}
return file;
});
console.log(data.files[0]);
qcount += 1;
$('#select-button').text(qcount + ' files');
data.submit();
});
});
您不必使用file.name
。您可以使用file.name
+ file.size
作为哈希值。