我正在尝试删除FilesAdded事件中不允许扩展名的文件。(我不能使用筛选器参数,因为我需要一个排他性列表)。
我有一些代码有点像这样:
uploader.bind('FilesAdded', function(up, files) {
var count = files.length;
var i = 0;
for (i;i<count;i++) {
var validExt = validate(files[i].name);
if(!validExt){如果扩展名无效,我需要删除添加的文件。我试过以下几种方法:
uploader.splice(i,1)
uploader.removeFile(files[i]);
uploader.refresh();FilesRemoved事件被触发,但已删除的文件仍然使用uploader.start()上载。
我不知道这是否是程序中的一个bug,或者是太模糊,无法期待一个简单的答案,但如果有人可以帮助,我会非常感激。我不认为我错过了任何显而易见的事情。
谢谢。
发布于 2013-08-29 10:33:50
一些事情..。
第一,必须在调用init()函数后绑定filesAdded事件。
uploader.init();
uploader.bind('FilesAdded', function (up, files) {...}第二,在定义plupload时,可以使用螺旋桨过滤器过滤文件扩展名。
uploader = new plupload.Uploader({
...,
filters: [
{ title: "Image files", extensions: "jpeg,jpg,gif,png" }
],
...
});下面是一个从plupload中删除文件的工作示例
$.each(uploader.files, function (i, file) {
if (file && file.id != currentFile.id) {
uploader.removeFile(file);
}
});干杯!
发布于 2014-06-04 17:16:13
如果没有上载进度,并且希望从上载程序列表中删除所有排队的文件,请执行以下操作:
var queueLength = uploader.files.length;
对于(i = 0;i< queueLength;i++) {
if (uploader.files & uploader.files !==未定义){
uploader.removeFile(uploader.files);}
注意:如果尝试按索引删除文件,某些文件将留在列表中;因为每次从列表中移除文件项时,都会刷新文件项并调用索引。
发布于 2012-02-17 21:23:23
您需要将要删除的文件的id传递给removeFile:
uploader.removeFile(files[i].id)
https://stackoverflow.com/questions/8842136
复制相似问题