将数据附加到 formData 对象
Append data to formData object
我似乎没有将额外的数据添加到 "formData"。
首先我添加我的输入文件:
var form = $('#uploadForm')[0];
var formData = new FormData(form);
var input = $("#uploadPhoto")[0];
//Add input file data to formData
formData.append(input.name, input.files[0]);
这很好用。
我的 PHP var_dump
在 "ajax call" 结果之后:
array(1) {
["uploadPhoto"]=>
array(5) {
["name"]=>
string(5) "1.xls"
["type"]=>
string(24) "application/vnd.ms-excel"
["tmp_name"]=>
string(40) "..../tmp/phpmyn3E1"
["error"]=>
int(0)
["size"]=>
int(42799)
}
}
现在我想添加一些额外的数据以传递给 php 脚本:
formData.append('usr', selectedUsr);
formData.append(input.name, selectedUsr);
formData.append('usr', 'usr: '+ selectedUsr);
当我现在检查我的 PHP var_dump 时,数组中没有 "usr" 数据。
为什么?
我认为你只检查 $_FILES
,还要检查 post 数据 print_r($_POST)
当你附加:
formData.append('usr', selectedUsr);
您无法使用 $_FILES['uploadPhoto']
访问对象
相反,我使用 $_POST
访问
所以我的解决方案是:
//JS
formData.append('usr', selectedUsr);
//PHP
$usr = $_POST['usr'];
我似乎没有将额外的数据添加到 "formData"。
首先我添加我的输入文件:
var form = $('#uploadForm')[0];
var formData = new FormData(form);
var input = $("#uploadPhoto")[0];
//Add input file data to formData
formData.append(input.name, input.files[0]);
这很好用。
我的 PHP var_dump
在 "ajax call" 结果之后:
array(1) {
["uploadPhoto"]=>
array(5) {
["name"]=>
string(5) "1.xls"
["type"]=>
string(24) "application/vnd.ms-excel"
["tmp_name"]=>
string(40) "..../tmp/phpmyn3E1"
["error"]=>
int(0)
["size"]=>
int(42799)
}
}
现在我想添加一些额外的数据以传递给 php 脚本:
formData.append('usr', selectedUsr);
formData.append(input.name, selectedUsr);
formData.append('usr', 'usr: '+ selectedUsr);
当我现在检查我的 PHP var_dump 时,数组中没有 "usr" 数据。
为什么?
我认为你只检查 $_FILES
,还要检查 post 数据 print_r($_POST)
当你附加:
formData.append('usr', selectedUsr);
您无法使用 $_FILES['uploadPhoto']
相反,我使用 $_POST
所以我的解决方案是:
//JS
formData.append('usr', selectedUsr);
//PHP
$usr = $_POST['usr'];