Javascript 使用ajax将多个文件附件发送到php文件
我在表单中有以下html代码: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对象然后逐个向其中添加字段的问题……这无法说明如何处理多个文
<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
}