2013-03-26 70 views
3

我需要使用jQuery File Upload控件中提供的formData参数在提交时向服务器发送附加数据。 formData的默认实现是调用一个函数,该函数抓取表单中的所有控件并将它们序列化为一个数组(使用jQuery serializeArray()方法)。jQuery文件上传不提交额外参数

我在窗体中有控件,但是当文件上传时,我没有收到任何其他数据。当我通过Fiddler检查时,请求中没有任何内容显示正在提交这些表单域。

是否还有其他需要做的事情才能让这些提交?

顺便说一句,这两个环节讨论FORMDATA ...

https://github.com/blueimp/jQuery-File-Upload/wiki/Submit-files-asynchronously https://github.com/blueimp/jQuery-File-Upload/wiki/Options ......这一个搜索页面FORMDATA。

对于它的价值,multipart选项设置为true。

+2

你能提供您当前的代码?否则我们不知道你是否错误地使用了插件等。 – 2013-03-26 21:14:55

回答

9

我还需要通过一个额外的参数,下面是我用什么:

$('#fileupload').fileupload({ 
    formData: { 
        param1: 'test' 
        ,param2: "value2" 
        ,param3: "yasseshaikh" 
       } 
}); 

formData option可以用来编程设置其他形式的数据。

0

如果blueimp插件不是我的要求,我真的会推荐jquery malsup表单。

您可以使用常规的多部分表单,只需创建一个常规文件输入字段以及您自己选择的其他输入字段,并且所有内容都将按照惯例提交。

参考:http://www.malsup.com/jquery/form/

代码示例:

$('#myForm2').submit(function() { 
    $(this).ajaxSubmit(options); 
    return false; 
}); 
1

完整代码(我修改亚西尔·提供的答案)

添加这些代码到jquery.fileupload.js

submit: function (e, data) { 

    $('#fileupload').fileupload({ 
      formData: { 
       param1: 'test' 
       ,param2: "value2" 
       ,param3: "yasseshaikh" 
      } 
    }); 
}, 
相关问题