Javascript 作为XMLHttpRequest和FormData的一部分发送多个文件

Javascript 作为XMLHttpRequest和FormData的一部分发送多个文件,javascript,Javascript,我在我的网站上有一个表格,人们可以在上面附上一个文件。当按下一个按钮时,它会让用户保持在同一页面上(但会更新他们的屏幕),表单内容会使用xmlhttprequest中的formdata发送 这在一个文件中运行良好: 但是,我更改了输入以允许多个文件: 但现在我不确定应该如何调整代码的form.append部分 我是否应该为文件创建某种循环,以分别附加每个文件,并在附加名称的末尾创建一个计数器?像第一个映像的“files1”和第二个映像的“files2”?有没有更直接的方法 需要注意的是,我之所以

我在我的网站上有一个表格,人们可以在上面附上一个文件。当按下一个按钮时,它会让用户保持在同一页面上(但会更新他们的屏幕),表单内容会使用xmlhttprequest中的formdata发送

这在一个文件中运行良好:

但是,我更改了输入以允许多个文件:

但现在我不确定应该如何调整代码的form.append部分

我是否应该为文件创建某种循环,以分别附加每个文件,并在附加名称的末尾创建一个计数器?像第一个映像的“files1”和第二个映像的“files2”?有没有更直接的方法


需要注意的是,我之所以在代码的第一部分使用文件[0],是因为它实际上会发送图像,而不仅仅是一些表示它是对象的文本。也许有一种方法可以发送一个对象,并将所有图像作为该对象的一部分?

类似的方法应该适用于您的案例场景:

var n_files = document.getElementById('files').files.length;
for (var x = 0; x < n_files; x++) {
    form.append("files[]", document.getElementById("files").files[x]);
}
var n_files=document.getElementById('files').files.length;
对于(var x=0;x
通常会忘记将
文件更改为
文件[]


同样重要的是,这取决于服务器端如何处理多部分表单。

表单包装在一个循环中?
var n_files = document.getElementById('files').files.length;
for (var x = 0; x < n_files; x++) {
    form.append("files[]", document.getElementById("files").files[x]);
}