我使用plupload来允许用户上传文件。我正在传递两个带有plupload的多参数。第一个参数是在页面加载时动态设置的。当用户从选择菜单中选择时,另一个设置。
页面加载时第二个参数为空白,我不知道在用户做出选择后如何将其传递给plupload。
如果我将plupload代码添加到更改功能,它可以工作,但我不希望这样,因为在用户做出选择之前,plupload是不可见的。
我希望有人可以帮助我。
这是我的代码:
$("#uType").change(function(){
var upType = $('#uType').val();
$("#type").val(this.value);
});
var uploader = $("#uploader").plupload({
// General settings
runtimes : 'html5,flash,silverlight,html4',
url : "/wp-content/plugins/tyhp-filemaker/tyhp-youth-upload.php",
// Maximum file size
max_file_size : '2mb',
chunk_size: '1mb',
// Resize images on clientside if we can
resize : {
width : 200,
height : 200,
quality : 90,
crop: true // crop to exact dimensions
},
multipart_params: {'type': $('#type').val(), 'account' : $('#AccountUpload').val()},
// Specify what files to browse for
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip,avi"}
],
// Rename files by clicking on their titles
rename: true,
// Sort files
sortable: true,
// Enable ability to drag'n'drop files onto the widget (currently only HTML5 supports that)
dragdrop: true,
// Views to activate
views: {
list: true,
thumbs: true, // Show thumbs
active: 'thumbs'
}
// Flash settings
flash_swf_url : '/plupload/js/Moxie.swf',
// Silverlight settings
silverlight_xap_url : '/plupload/js/Moxie.xap'
});
答案 0 :(得分:2)
我找到了解决问题的方法。
以下是如何连接到现有的plupload实例并根据选择菜单中的更改事件设置多参数:
$("#uType").change(function(){
var upType = $('#uType').val();
$("#type").val(this.value);
var uploader = $('#uploader').plupload('getUploader');
uploader.settings.multipart_params.type = $("#type").val();
uploader.settings.multipart_params.account = $('#AccountUpload').val();
});
答案 1 :(得分:0)
尝试删除multipart_params变量名称上的“引号”,如下所示:
multipart_params: { type: $('#type').val(), account : $('#AccountUpload').val() }
我知道-这些示例使用引号。他们实际上在其他版本中工作。但是不幸的是,对于您,我和许多其他人来说,该产品的文档还有很多不足之处。我不得不花太多时间调试它,以查看它确实正在做什么。即使是“最新”版本。我认为没有人再维护它了。
答案 2 :(得分:0)
您可以使用BeforeUpload选项添加多部分参数
uploader.bind('BeforeUpload', function(up, file) {
uploader.settings.multipart_params.type = $('#type').val();
uploader.settings.multipart_params.account = $('#AccountUpload').val();
console.log(file);
});