添加其他参数以使用fin上传器发送到服务器

Add additional parameters to send to server using fineuploader

本文关键字:服务器 fin 参数 其他 添加      更新时间:2024-04-15

我正在使用http://fineuploader.com/上传文件。效果完美。然后,我在request对象中设置params,以发送一些要发送到服务器的附加参数。效果完美。然后,我添加另一个参数,使用带有onSubmit回调的setParams发送。工作不完美,因为它删除了我的原始参数。我的愿望是将最后一个参数添加到原始参数中,而不是替换它们。我的newPar是一个动态阀,而不是我的例子中所示的常数。

我应该不尝试在request对象中定义参数并在回调中完成所有操作吗?或者使用匿名函数在request对象中设置我添加的参数?或者其他方式?

var uploader = new qq.FineUploaderBasic({
    button: document.getElementById('uploader'),
    autoUpload: false,
    multiple:false,
    request: {
        endpoint: 'uploads/handleUploads.php',
        params: {id:123,task:'upload'}
    },
    callbacks: {
        onSubmit: function(id, fileName) {
            this.setParams({newPar:321});
        }
    },
    debug: true
});

您的最佳选择是使用任何新参数扩展onSubmit中的默认参数({ id: 123, task: 'upload' })。这里有一个例子:

// set your default parameters for all files via
// some object/function visible in fineuploader's scope
var defaultParams = {
    id: 123,
    task: 'upload'
}
var uploader = new qq.FineUploaderBasic({
    multiple: false,
    debug: true,
    autoUpload: false,
    button: document.getElementById('uploader'),
    request: {
        endpoint: "uploads/handleUploads.php",
    },
    callbacks: {
        onSubmit: function (id, fileName) {
            // Extend the default parameters for all files
            // with the parameters for _this_ file.
            // qq.extend is part of a myriad of Fine Uploader
            // utility functions and cross-browser shims
            // found in client/js/util.js in the source.
            var newParams = {
                newPar: 321
            },
                finalParams = defaultParams;
            qq.extend(finalParams, newParams);
            this.setParams(finalParams);
        }
    }
});

Fine Uploader有大量的实用函数(docs/code),我使用了其中一个——extend——来帮助创建我们的最终参数对象(假设您没有使用jQuery或任何其他依赖项)。

编辑:意识到您不是为特定文件设置参数,而是为所有文件动态设置参数。