我正在尝试删除 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() 上传。
我不知道这是否是程序中的一个错误,或者太晦涩难懂以至于无法得到简单的答案,但如果有人能提供帮助,我将不胜感激。我认为没有遗漏任何明显的东西。
谢谢。
最佳答案
一些事情...
首先,您必须在调用 init() 函数后绑定(bind) 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);
}
});
干杯!
关于javascript - plupload removeFiles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8842136/