Plupload过滤器允许除少数扩展外的所有扩展

Plupload filters to allow all but a few extensions

本文关键字:扩展 过滤器 Plupload      更新时间:2023-09-26

Pupload允许您指定哪些文件类型可以上传,但我想做相反的事情:允许除某个子集之外的所有文件类型。这可能吗?

有人在Plupload的Github上发布了一个解决方案。您必须使用addFileFilter方法。

    plupload.addFileFilter('excluded_extensions', function(filter, file, cb){
        var permitted = true;
        var exts = filter[0].extensions.split(',');
        //We have no excluded extensions, function presented default exclusion string, so allow anything
        if(exts.length === 1 && exts[0] === "-")
            permitted = true;
        else
        {
            for(var i = 0; i < exts.length; i++)
            {
                var fileArray = file.name.split('.');
                var extension = fileArray[fileArray.length - 1];
                if(exts[i].toUpperCase() === extension.toUpperCase())
                {
                    this.trigger('Error', {
                        code: plupload.FILE_EXTENSION_ERROR,
                        message: plupload.translate('File extension error.'),
                        file: file
                    });
                    permitted = false;
                    cb(false);
                    return;
                }
            }
        }
        if(permitted)
            cb(true);
    });