在 Ajax 中发送文件并在 jQuery 中输入
Send file in Ajax and input with jQuery
我有一个用于上传文件和输入的表单。
<form id="form">
<input type="text" id="name">
<input type="file" id="file">
</form>
这就是我用来在 Ajax 中发送文件的方式:
$('#form').submit(function(e){
e.preventDefault();
var file_data = $('#file').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
type : 'POST',
data: form_data,
url: 'upload.php',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
...
但是我没有得到输入值。
请问我在这里遗漏了什么?
谢谢。
将整个表单元素传递到 FormData()
比在需要该表单的所有数据时手动附加到它更简单
而不是:
var file_data = $('#file').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
就这样:
var form_data = new FormData(this);// `this` is the form element submit event occured on
并向表单控件添加 name
属性:
<form id="form">
<input name="name" type="text" id="name">
<input name="file" type="file" id="file">
</form>
我有一个用于上传文件和输入的表单。
<form id="form">
<input type="text" id="name">
<input type="file" id="file">
</form>
这就是我用来在 Ajax 中发送文件的方式:
$('#form').submit(function(e){
e.preventDefault();
var file_data = $('#file').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
$.ajax({
type : 'POST',
data: form_data,
url: 'upload.php',
dataType: 'text',
cache: false,
contentType: false,
processData: false,
...
但是我没有得到输入值。
请问我在这里遗漏了什么?
谢谢。
将整个表单元素传递到 FormData()
比在需要该表单的所有数据时手动附加到它更简单
而不是:
var file_data = $('#file').prop('files')[0];
var form_data = new FormData();
form_data.append('file', file_data);
就这样:
var form_data = new FormData(this);// `this` is the form element submit event occured on
并向表单控件添加 name
属性:
<form id="form">
<input name="name" type="text" id="name">
<input name="file" type="file" id="file">
</form>