我努力使这项工作变得有效,而且这里或其他任何地方的解决方案似乎都不适合我。我不知道自己做错了什么,也许我对事情的运作方式有误解。
我有一些数据,包括类型为input
的{{1}},全部来自file
。我希望通过一个html form
请求将它们全部发送到一起并上传文件,并且还能够处理其他数据。
所以我创建了一个包含名称为ajax
的所有数据(包括文件数据)的数组,并将其传递给the_data
函数。
它不起作用。问题不在服务器端,因为永远不会发出ajax
请求。问题是客户方面,但我不明白可能是什么问题。
所以这是我的代码:
ajax
以上数据不属于function sentDataToSql(pos) {
var data = new FormData();
jQuery.each(jQuery('#photo-upload')[0].files, function(i, file) {
data.append('file-'+i, file);
});
var numbers = $('#numbers').val();
var my_address = $('#my-address').val();
var signals=$('.signals').text();
var date=new Date();
var month=date.getMonth()+1;
var day=date.getDay();
var year=date.getFullYear();
var finaldate=year+'-'+month+'-'+day;
var dt = new Date();
var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
var the_data={
nums:numbers,
address:my_address,
type:'sometype',
lat:pos['lat'],
lng:pos['lng'],
sigs:signals,
time:time,
date:finaldate,
pic:data //If I remove this everything will work(but of course the file won't be sent)
};
if(my_address!=''){
$.ajax({
type:'POST',
url:'../index.php',
data:the_data,
})
}else{
alert('Please .....! ')
}
}
且全部都在form
之外,而且类型为form
的输入元素如下所示:
file
这是我的控制台日志错误:
<input type="file" name="photo" style="opacity:0;" id="photo-upload">
在尝试将所有数据放入TypeError: 'append' called on an object that does not implement interface FormData.
对象后,编辑后的代码仍无法正常工作,我收到与上述相同的错误:
FormData
}