単純に名前に基づいて、ファイルを重複として宣言することに注意してください。少なくとも、サイズも考慮する必要があります。ただし、IE9 以前のブラウザではクライアント側でファイル サイズを判断できないため、これは不可能です。簡単にするために、ファイル名のみを使用しましょう...
1 つの方法は、アップローダに送信されたファイル名の配列を維持することです。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;
}
}
});
また、プロジェクトですでに jQuery を使用しているように見えるので、Fine Uploader の 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;
});