jQuery / AJAX - 与文件上传一起发送附加数据
jQuery / AJAX - send additional data together with file upload
我正在使用 jQuery 将文件上传到服务器:
$.ajax({
url : 'http://www.example.com',
dataType : 'json',
cache : false,
contentType : false,
processData : false,
data : formData, // formData is $('#file').prop('files')[0];
type : 'post',
success : function(response) {something}
});
我想将附加参数与文件一起发送。可能吗?如果是 - 如何?
谢谢!
试试这个,
$( "form" ).on( "submit", function( event ) {
var formData = $( this ).serialize();
//$.ajax({}) //remaining code here
});
您必须使用 FormData
对象序列化表单,而不仅仅是发送文件。
var formData = new FormData($("form")[0]);
要发送其他参数,您只需将其附加到 formdata
,如下所示:
var formdata=new FormData();
formdata.append('simpleFile', $('#file').get('files')[0]); //use get('files')[0]
formdata.append('someotherparams',someothervalues);//you can append it to formdata with a proper parameter name
$.ajax({
url : 'http://www.example.com',
dataType : 'json',
cache : false,
contentType : false,
processData : false,
data : formData, //formdata will contain all the other details with a name given to parameters
type : 'post',
success : function(response) {something}
});
我正在使用 jQuery 将文件上传到服务器:
$.ajax({
url : 'http://www.example.com',
dataType : 'json',
cache : false,
contentType : false,
processData : false,
data : formData, // formData is $('#file').prop('files')[0];
type : 'post',
success : function(response) {something}
});
我想将附加参数与文件一起发送。可能吗?如果是 - 如何?
谢谢!
试试这个,
$( "form" ).on( "submit", function( event ) {
var formData = $( this ).serialize();
//$.ajax({}) //remaining code here
});
您必须使用 FormData
对象序列化表单,而不仅仅是发送文件。
var formData = new FormData($("form")[0]);
要发送其他参数,您只需将其附加到 formdata
,如下所示:
var formdata=new FormData();
formdata.append('simpleFile', $('#file').get('files')[0]); //use get('files')[0]
formdata.append('someotherparams',someothervalues);//you can append it to formdata with a proper parameter name
$.ajax({
url : 'http://www.example.com',
dataType : 'json',
cache : false,
contentType : false,
processData : false,
data : formData, //formdata will contain all the other details with a name given to parameters
type : 'post',
success : function(response) {something}
});