[英]Send multiple file attachments to php file using ajax
我在表單中有以下html代碼:
<input type="file" id="attachments" name="attachments" multiple>
我已經有一個javascript函數,使用ajax處理表單的onsubmit,但不處理上傳的文件。
這是我的javascript函數的一部分,它將數據發送到所需的php文件:
var to_users = $("#to_users").val();
var title = $("#title").val();
var content = $("#content").val();
var data = {
to_users:to_users,
title:title,
content:content
}
$.ajax({url: "submit.php", type:"POST" , data:data ,success: function(result){
// does something
}});
關於使用ajax和php的附件在線有許多教程和問題,但沒有一個處理多個文件。 我的問題是:我需要添加到這個函數,以便將附加的文件發送到php文件? 我應該在php文件中寫什么來處理它收到的文件?
要上傳多個圖像,請使用數組:
<input type="file" id="attachments" name="attachments[]" multiple>
並使用ajax發送表單數據:
var formData = new FormData(this);
$.ajax({
url: "submit.php",
type: "POST",
data: formData,
processData: false,
contentType: false,
success: function(result){
// do something
}
});
在php文件中使用循環( foreach
i recommended)來保存所有附件。
foreach($_FILES['attachments']['name'] as $key=>$val){
// do whatever you want
}
有很多問題幾乎都是重復的,但它們都會受到創建FormData對象,然后逐個添加字段......這無法顯示如何處理多個文件輸入(並且是一個冗長的問題)和脆弱的問題解決方法)。
只需將form元素作為參數傳遞給FormData對象。
var formData = new FormData(document.querySelector("form"));
$.ajax({
url: "submit.php",
type: "POST",
data: formData,
processData: false,
contentType: false
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.