首先,我需要说的是,如果你想上传文件,我的意思是如果您的表单有文件输入,然后根据RFC-7578添加表单属性enctype="multipart/form-data"
。您还可以看到使用http://www.w3schools.com/tags/att_form_enctype.asp。
然后再次移动到html部分。假设你有一个像
<form action="some_domain/example.php" method="post" enctype="multipart/form-data">
<input type="file" name="file" id="fileId"/>
<input type="text" name="firstName" id="name">
<button onclick="post('some_domain/example.php')" type="button">Save</button>
</form>
,表格输入后立即使用Ajax文件数据:
function post(url){
$.ajax({
url:url,
type: 'POST',
processData:false,
contentType:false,
data: $('#fileId')[0].files[0],
success: function (data) {
alert("successfully posted.");
}
});
}
我认为这应该是工作的罚款。
UPDATE: 如果你想发布文本数据,那么你应该使用FormData
对象。
function post(url){
var formData = new FormData();
var files = document.getElementById("fileId").files;
for (var i = 0; i < files.length; i++) {
var file = files[i];
formData.append('files[]', file, file.name);
}
formData.append('firstName',$('#name').val());
$.ajax({
url:url,
type: 'POST',
processData:false,
contentType:false,
data: formData,
success: function (data) {
alert("successfully posted.");
}
});
}
你的问题是什么LEM?请在你的问题中定义实际问题并更新它。 –
实际的问题是文件未序列化。 –
你的意思是表单数据没有被序列化? –