我正在使用http://fineuploader.com/上传文件。工作完美。然后,我在params
对象中设置request
,以发送一些其他参数发送到服务器。工作完美。然后我添加另一个参数,使用setParams
和onSubmit回调发送。不能完美,因为它删除了我的原始参数。我的愿望是将最后一个参数添加到原始参数中,而不是替换它们。我的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
});
答案 0 :(得分:12)
您最好的选择是使用任何新参数扩展{ id: 123, task: 'upload' }
中的默认参数(onSubmit
)。这是一个例子:
// 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或任何其他依赖项。)
编辑:意识到您没有为特定文件设置params,而是为所有文件设置动态。