插件扩展


扩展 jQuery FileUpload 插件的推荐方法是使用 jQuery UI 部件库的扩展机制。

它允许你直接覆盖默认的配置项(包括回调函数)和 File Upload 部件类的方法。

有关如何覆盖回调函数及添加其他选项的示例


以下便是一个如何创建自定义类的示例,它通过覆盖插件的 destroy 回调,具体就是对删文件时的 URL 添加一个含有实时令牌的参数,用它来防止 CSRF 攻击。

该示例是给演示 demo 使用的一个简单版本的插件扩展(参见 Demo 指南)。

$.widget('blueimp.fileupload', $.blueimp.fileupload, {

    options: {
        authenticityTokenName: 'request_authenticity_token',
        destroy: function (e, data) {
            // jQuery Widget Factory uses "namespace-widgetname" since version 1.10.0:
            var fu = $(this).data('blueimp-fileupload') || $(this).data('fileupload');
            data.url = data.url &&
                fu._addUrlParams(data.url, fu._getAuthenticityToken());
            $.blueimp.fileupload.prototype
                .options.destroy.call(this, e, data);
        }
    },
    
    _addUrlParams: function (url, data) {
        return url + (/\?/.test(url) ? '&' : '?') + $.param(data);
    },
    
    _getAuthenticityToken: function () {
        var name = this.options.authenticityTokenName,
            parts = $.cookie(name).split('|'),
            obj = {};
        obj[name] = parts[0];
        return obj;
    }

});

有关如何覆盖现有插件方法的示例


参见模板引擎