如何将其他数据发送到jQuery文件上传插件?

时间:2012-10-23 15:53:05

标签: javascript jquery jquery-plugins

这看起来很愚蠢,但我似乎无法理解文档。 我正在谈论文件上传的This插件。

现在根据文档,有一个选项:

  

FORMDATA

     

可以使用此设置要与文件上传一起发送的其他表单数据    option,接受具有名称和值属性的对象数组,函数    返回这样的数组,FormData对象(用于XHR文件上传)或简单对象。    第一个fileInput的形式作为函数的参数给出。

     

注意:当multipart选项设置为false时,将忽略其他表单数据。

     

类型:数组,对象,函数或FormData默认值:一个函数   将表单字段作为序列化数组返回:

function (form) {
    return form.serializeArray();
}
     

示例:

     

[       {           名称:' a',           价值:1       },       {           名称:' b',           价值:2       }]

我无法理解我所做的事情。

这是我初始化插件的方式:

$('#add_image_upload').fileupload({
            dataType: 'json',
    sequentialUploads: true,
    formData : getDate
});

这是我对该功能的尝试:

 function getDate(){

//if user didn't selected a date
if(!selectedDate || selectedDate=="undefined"){
selectedDate = "1/1/"+$('#timeline').html();
}
var date= new Array(selectedDate);
return date;
}

2 个答案:

答案 0 :(得分:7)

尝试将数据转换为对象 - 使用他们在示例中显示的内容

$('#add_image_upload').fileupload({
            dataType: 'json',
    sequentialUploads: true,
    formData : {name:'thedate',value:getDate}
});

然后添加更多参数

           //name of param  // value
formData : [{name:'thedate',value:getDate},{name:'thedate2',value:'seconddate'},etc..]
  

示例:

     

[{name:'a',value:1},{name:'b',value:2}]

使用您想要命名的参数

更改thedate

虽然听起来像一个简单的对象应该可以正常工作

           //name:value
formData : {thedate:getDate}

答案 1 :(得分:0)

您的表单上是否设置了multipart false?另外,请确保您发回的内容的格式是可以接受的。

尝试对以下行进行硬编码并发回信息:

new dateobject = { "date": "1/1/2012" }