将数据附加到formData对象

时间:2016-06-28 10:23:23

标签: javascript jquery form-data

我似乎没有将额外的数据添加到" 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调用"之后结果:

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"数组中的数据 为什么呢?

2 个答案:

答案 0 :(得分:1)

我认为您只检查$_FILES,还会检查发布数据print_r($_POST)

答案 1 :(得分:1)

当你追加:

formData.append('usr', selectedUsr);

您无法使用$_FILES['uploadPhoto']

访问该对象

相反,我使用$_POST

进行访问

所以我的解决方案是:

//JS
formData.append('usr', selectedUsr);
//PHP
$usr = $_POST['usr'];