向formData对象追加数据

5
我似乎无法将额外的数据添加到“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个回答

7
当您追加内容时:
formData.append('usr', selectedUsr);

您无法使用$_FILES['uploadPhoto']访问对象

相反,我使用$_POST

我的解决方案是:

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

1

我认为你只检查了$_FILES,还应该检查post数据print_r($_POST)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接