Javascript 使用ajax将多个文件附件发送到php文件

Javascript 使用ajax将多个文件附件发送到php文件,javascript,php,jquery,ajax,forms,Javascript,Php,Jquery,Ajax,Forms,我在表单中有以下html代码: <input type="file" id="attachments" name="attachments" multiple> 在线上有很多关于使用ajax和php的附件的教程和问题,但没有一个可以处理多个文件。 我的问题是:我需要向这个函数添加什么,以便将附加文件发送到php文件?为了处理收到的文件,我应该在php文件中写些什么?有很多问题几乎是重复的,但它们都会遇到创建FormData对象然后逐个向其中添加字段的问题……这无法说明如何处理多个文

我在表单中有以下html代码:

<input type="file" id="attachments" name="attachments" multiple>
在线上有很多关于使用ajax和php的附件的教程和问题,但没有一个可以处理多个文件。
我的问题是:我需要向这个函数添加什么,以便将附加文件发送到php文件?为了处理收到的文件,我应该在php文件中写些什么?

有很多问题几乎是重复的,但它们都会遇到创建FormData对象然后逐个向其中添加字段的问题……这无法说明如何处理多个文件输入(这是一种冗长而脆弱的解决方法)

只需将form元素作为参数传递给FormData对象即可

var formData = new FormData(document.querySelector("form"));
$.ajax({
    url: "submit.php",
    type: "POST",
    data: formData,
    processData: false,
    contentType: false
});

要上载多个图像,请使用阵列:

<input type="file" id="attachments" name="attachments[]" multiple>
在php文件中,使用循环(
foreach
我推荐)保存所有附件

foreach($_FILES['attachments']['name'] as $key=>$val){

// do whatever you want

}

它不起作用。我把php代码
if(isset($\u POST[“attachments”])放进了echo“attached”
但它没有回显任何使用
$\u文件的信息
没有
$\u POST
好的,现在它工作了……我现在可以在foreach循环中使用pdo更新查询直接将附件插入数据库吗?当然,您可以。在
foreach
循环中,将附件插入数据库并移动到文件夹中。
 var formData = new FormData(this);
$.ajax({
    url: "submit.php",
    type: "POST",
    data: formData,
    processData: false,
    contentType: false,
    success: function(result){

    // do something
   }
});
foreach($_FILES['attachments']['name'] as $key=>$val){

// do whatever you want

}