plupload动态多参数

时间:2017-09-18 19:40:13

标签: javascript jquery plupload

我使用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'
      });

3 个答案:

答案 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);
});