我正在使用blueimp的文件上传器。我想这样做,以便用户只能上传一个文件(我无法使用maxNumberOfFiles
,因为我没有使用UI插件)。
如何制作它,以便当用户选择要上传的新图像时,它会删除先前在队列中的文件,然后将新图像文件添加到队列中以进行上传?
这是我到目前为止所做的:
$('#fileupload').fileupload({
dataType: 'json',
add: function(e, data) {
var uploadErrors = [];
var acceptFileTypes = /^image\/(gif|jpe?g|png)$/i;
if (data.originalFiles[0]['type'].length && !acceptFileTypes.test(data.originalFiles[0]['type'])) {
uploadErrors.push('Invalid file type.');
} else if (data.originalFiles[0]['size'] > 1000000) {
uploadErrors.push('Image over size.');
}
if (uploadErrors.length > 0) {
$('.errors').html(uploadErrors);
} else {
data.submit();
}
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('.progress .bar').css('width', progress + '%');
}
});
答案 0 :(得分:0)
您可以在data.files
操作后操作文件数组data.originalFiles
/ add
,按索引取消设置文件,如:
data.files = $.grep( data.files, function( element, index ) {
return index == 0;
// or
// return $.inArray(i, error_uploads_indexes) ==-1; // where error_uploads_indexes is array with files indexes You want to remove
});
// ...
data.submit();
如果可以,您可以设置singleFileUploads: false
。