jQuery文件上传不提交额外参数

我需要使用jQuery File Upload控件中提供的formData参数在提交时将其他数据发送到服务器。 formData的默认实现是调用一个函数来抓取表单中的所有控件并将它们序列化为一个数组(使用jQuery serializeArray()方法)。

我的表单中有控件,但是当文件上传时,我没有获得任何其他数据。 当我通过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。

我还需要传递一个额外的参数,这是我使用的:

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

formData选项可用于以编程方式设置其他表单数据。

完整代码(我修改了Yasser提供的答案)

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

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

如果blueimp插件不是必需的,我会推荐jquery malsup表单。

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

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

代码示例:

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

您必须将数据绑定到fileupload。 看看这个问题
Blueimp jQuery文件上传,传递额外的表单数据