我正在我的Files Added事件中进行一些文件类型检查,在某些条件下我希望从上传队列中删除文件。我很亲密,但并不完全。这是我的代码的相关部分:
var uploader = $("#html5_uploader").pluploadQueue({
// General settings
runtimes : 'html5',
url : '/valid/url',
max_file_size : '5mb',
unique_names : true,
multi_selection : true,
init : {
Init: function() {
},
FilesAdded: function(up, files) {
plupload.each(files, function(file, i) {
var id = file.id;
var type = file.type;
var checkType = type.match(/msdownload/g);
if (checkType != null) {
$('#' + id).find('.plupload_file_name span').empty().append('This file type is not allowed.');
file.destroy();
files = removeKey(files, i);
}
});
console.log(files);
console.log(files.length);
if (files.length>0) {
// Start uploads immediately
up.start();
}
},
}
removeKey方法是我从另一个讨论中得到的东西,看起来像:
function removeKey(arrayName,key) {
var x;
var tmpArray = new Array();
for(x in arrayName) {
if(x!=key) {
tmpArray[x] = arrayName[x];
}
}
return tmpArray;
}
如您所见,我希望我的文件立即上传到添加。
我收到以下错误:
Uncaught TypeError: Cannot read property 'size' of null
可能因为我删除的文件的属性仍在尝试阅读。最终结果是“好”文件由于此错误而无法在“错误”后上传。我可能没有正确删除“坏”文件。感谢。