【问题标题】:Unable to pass additional parameters in plupload无法在 plupload 中传递附加参数
【发布时间】:2012-11-02 07:18:03
【问题描述】:

我正在使用 plupload,即 JQuery UI 实现。我正在尝试将其他参数传递给服务器,但我无法使其工作。应该很简单,在函数执行时参数已经设置好了,所以这应该不是问题。我试过这个:

function GetPlUploader(m)
{
$("#divOpplaster").plupload(
{
    // General settings
    runtimes: 'flash,html5,silverlight',
    url: 'upload.php',
    max_file_size: '10mb',
    chunk_size: '1mb',
    unique_names: true,
    multipart: true,
    multipart_params: [
    {
        'ordre': ordreibruk,
        'mode': m}
    ],

    // Specify what files to browse for
    filters: [
    {
        title: "Bildefiler",
        extensions: "jpg,gif,png,bmp"}
    ],

    // Flash settings
    flash_swf_url: 'plupload/js/plupload.flash.swf',

    // Silverlight settings
    silverlight_xap_url: 'plupload/js/plupload.silverlight.xap',

    init: {
        FileUploaded: function(up, file, info)
        {
            // Called when a file has finished uploading
            console.log('[FileUploaded] File:', file, "Info:", info);
        }
    }
});

console.log("Ordre: " + ordreibruk + ". Mode: " + m)

$("#divOpplaster").dialog(
{
    autoOpen: false,
    width: 650,
    show: "fade",
    hide: "fade"
})

$("#divOpplaster").dialog("open")

// Client side form validation
$('form').submit(function(e)
{
    var uploader = $('#uploader').plupload('getUploader');

    // Files in queue upload them first
    if (uploader.files.length > 0)
    {
        // When all files are uploaded submit form
        uploader.bind('StateChanged', function()
        {
            if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed))
            {
                $('form')[0].submit();
            }
        });

        uploader.start();
    }
    else
    alert('Du må velge minst én fil for opplasting.');

    return false;
});
}

我也尝试将其添加到 $('form').submit 部分:

uploader.bind('BeforeUpload', function(up)
    {
    up.settings.multipart_params =
    {
        'ordre': ordreibruk,
        'mode': m
    };

});

但无济于事。

我确定我忽略了一些非常简单的事情,但是什么?

亲切的问候, 安德斯

【问题讨论】:

标签: jquery-ui parameter-passing plupload


【解决方案1】:

我必须承认我曾经将我的参数作为查询字符串参数放在 url 中:

  • 在初始化期间:url: '/upload.aspx?id='+Id,
  • 或更高版本:upldr.settings.url = upldr.settings.url + '&token=' + myToken;

它工作正常。 希望这会有所帮助

【讨论】:

  • jbl,感谢您的回复。我更愿意以“正确的方式”来做这件事,但我将从你的解决方案开始,希望以后有人能给我们一个正确方向的指针:)
  • @jbl 我可以用 resize 参数来做到这一点......??我的意思是调整大小为 url 附加...?
  • @SagarNaliyapara 我猜你可以添加任何适合你需要的参数
【解决方案2】:

有同样的问题。偶然发现了这个可以很容易地翻译成 coffescript 的 sn-p,它也适用于我的项目。允许您在初始化后传递多部分参数(例如,在点击上传之前字段可以更改的情况)

var myUploader = $('#uploader').plupload('getUploader');
myUploader.bind('BeforeUpload', function(up, file) {
    up.settings.multipart_params = {path : $("#path").val()};
});

在您正常初始化和设置 $("#divOpplaster").plupload(...) 后调用它(当然,将您的 ID 设置为您的上传者字段)

【讨论】:

    猜你喜欢
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 2017-06-16
    相关资源
    最近更新 更多