Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $。尽管已填充键值,但每个都无法将数据追加到formData()_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript $。尽管已填充键值,但每个都无法将数据追加到formData()

Javascript $。尽管已填充键值,但每个都无法将数据追加到formData(),javascript,jquery,ajax,Javascript,Jquery,Ajax,我有以下HTML表单: <form action="mail/filesend.php" method="POST" accept-charset="utf-8" enctype="multipart/form-data" validate> <div class="input-wrpr"> <input type="file" name="files"> </div> <button type="su

我有以下HTML表单:

<form action="mail/filesend.php" method="POST" accept-charset="utf-8" enctype="multipart/form-data" validate>
    <div class="input-wrpr">
        <input type="file" name="files">
    </div>
    <button type="submit">
        Send File
    </button>       
</form>
我的提交处理程序中有以下代码:

$('form').submit(function(e) {
    e.stopPropagation();
    e.preventDefault();

    let data = new FormData();

    console.log(data);
    $.each(files, function(key, value) {
        data.append(key, value);
    });
    console.log(data);

});
$('form').submit(function(e) {
    e.stopPropagation();
    e.preventDefault();

    let files = $("#my-input")[0].files;
    let data = new FormData();

    console.log(data);
    $.each(files, function(key, value) {
        data.append(files[key].name, value);
    });

    console.log(data);
});
请注意我是如何在
$之前和之后记录
数据的。每个
循环,我在这里遇到的问题是
$之前和之后。每个
循环都没有数据附加到
数据
变量。为什么会这样

如果我
console.log
键,那么我会得到
0
作为键的值,以及如下所示的对象作为值:

File {name: "IMO.pdf", lastModified: 1501150320000, lastModifiedDate: Thu Jul 27 2017 15:42:00 GMT+0530 (India Standard Time), webkitRelativePath: "", size: 5941320, …}

为什么
$。每个
循环都无法将数据附加到我的
数据
变量?

我不是舒尔为什么您的代码失败,但是0,1,2。。。可能不是好的参数。可以这样做:

$.each(files, function(key, value){
        data.append("files[]",value,value.name);
});

我不是舒尔为什么你的代码会失败,但是0,1,2。。。可能不是好的参数。可以这样做:

$.each(files, function(key, value){
        data.append("files[]",value,value.name);
});
使用
console.log(data.getAll('0'))
检查文件的
data
对象

仅使用
console.log(data)
是不够的。

使用
console.log(data.getAll('0'))
检查文件的
数据对象


仅使用
控制台。日志(数据)
是不够的。

首先如果您的输入接受多个文件,您需要将
[]
添加到您的姓名
属性中

<input type="file" name="files[]" id="my-inptu">

首先如果您的输入接受多个文件,则需要将
[]
添加到您的姓名
attr

<input type="file" name="files[]" id="my-inptu">

这能为你工作吗

$.each(files, function(key, value){
        data.append("files[]",value);
});

这能为你工作吗

$.each(files, function(key, value){
        data.append("files[]",value);
});

但您对数据变量的期望是什么呢?。如果文件是数组,则键是索引。示例0,1,2…@MTK我希望在$之后。每个循环运行时,在记录的对象中的某个地方,我会得到以下
文件{name:“IMO.pdf”,lastModified:1501150320000,lastModifiedDate:Thu Jul 27 2017 15:42:00 GMT+0530(印度标准时间),webkitRelativePath:,size:5941320,}
您得到的,我已经理解了。。。但您对数据变量的期望是什么?只有文件名吗?或名称和大小。。。等等还是关于文件的所有?@MTK,在
数据的某个地方
我希望我得到一个带有如下对象的密钥:
文件{name:“IMO.pdf”,lastModified:1501150320000,lastModifiedDate:Thu Jul 27 2017 15:42:00 GMT+0530(印度标准时间),webkitRelativePath:,size:5941320,}
Ok。然后看mi回答,但您对数据变量的期望是什么?。如果文件是数组,则键是索引。示例0,1,2…@MTK我希望在$之后。每个循环运行时,在记录的对象中的某个地方,我会得到以下
文件{name:“IMO.pdf”,lastModified:1501150320000,lastModifiedDate:Thu Jul 27 2017 15:42:00 GMT+0530(印度标准时间),webkitRelativePath:,size:5941320,}
您得到的,我已经理解了。。。但您对数据变量的期望是什么?只有文件名吗?或名称和大小。。。等等还是关于文件的所有?@MTK,在
数据的某个地方
我希望我得到一个带有如下对象的密钥:
文件{name:“IMO.pdf”,lastModified:1501150320000,lastModifiedDate:Thu Jul 27 2017 15:42:00 GMT+0530(印度标准时间),webkitRelativePath:,size:5941320,}
Ok。然后看我的回答谢谢你,非常有洞察力,为我工作,给我一点时间接受:)为什么当我控制台.log(data)时,我看到一个空的对象,虽然'FormData{}',有点迷惑。我用Firefox测试了你的代码,如问题中所述
console.log(data)
返回了FormData对象,但调用
.getAll('0')
返回了我尝试上载的文件的详细信息。所以我不知道你为什么会看到一个空对象。谢谢你,非常有见地,为我工作,给我一些时间接受:)为什么当我控制台.log(data)时,我看到一个空对象,虽然“FormData{}”,有点迷惑。我用Firefox测试了你的代码,正如问题中所写的
console.log(data)
返回了FormData对象,但调用
.getAll('0')
返回了我尝试上载的文件的详细信息。所以我不知道你为什么看到一个空的物体。谢谢你,非常有洞察力!谢谢你,很有见地!