javascript - 将数据附加到 formData 对象

标签 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”数据。
为什么?

最佳答案

当你追加时:

formData.append('usr', selectedUsr);

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

访问该对象

相反,我使用$_POST访问

所以我的解决方案是:

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

关于javascript - 将数据附加到 formData 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38073567/

相关文章:

javascript - 如何删除 Firebase 中的数据?

jquery - 将所有CSS类放入一个数组中并进行计算

jquery - 从 Python 解析 jQuery 表单数据

android - 在 volley post 请求中发送表单数据

javascript - 将 HTML/Express.js 设置从 POST 更改为 PUT?

javascript - 创建一个复制数组元素的按钮

javascript - 在控制台中使用 JavaScript 获取用户输入

javascript - 旋转木马 slider 图像不滑动

javascript - 侧边栏仅在单击外部时关闭 onclick

javascript - 为什么使用 new FormData() 时指定 [0]?