簡體   English   中英

使用ajax將多個文件附件發送到php文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM