2017-09-03 43 views
0

我有多種形式動態生成。 我需要爲多個文件構建formData以及一些額外的隱藏輸入。append formData多個文件和其他輸入 - php處理

這是我到目前爲止已經試過:

$(document).on('click', '.upload-btn', function(e){ 
    e.preventDefault(); 

    var formData = new FormData($(this).parents('form')[0]); 

    $.ajax({ 
     method: "POST", 
     url: "upload.php", 
     dataType: 'text', 
     cache: false, 
     contentType: false, 
     processData: false, 
     data: formData, 

     beforeSend: function(){ 
     ... 
     }, 
     success: function(){ 
     ... 
     } 
    }); 
}); 

奇怪的是,這個工程不知何故,並且這些文件確實會上傳到服務器,我可以對臨時文件,但執行各種操作。 .. 這些文件從來不是$ _POST數組的一部分,如果我var_dump $ _POST文件不在那裏。

有沒有更好的方法來建立formData?當我測試isset($ _ POST ['file []'])時,我在PHP端丟失了一些東西)

任何幫助,非常感謝。

+0

您可能會在表單標記中缺少enctype =「multipart/form-data」 –

+0

它在那裏相信我。否則,它只會上傳第一張圖片。事情的作品,但我不知道如何發佈文件。 – cnapsys

回答

0

使用php的文件數組。的print_r($ _ FILES); 通過執行上述打印,您將可以訪問從表單發送的每個文件。這包括密鑰,tmp_name等

+0

將無法​​測試約2小時,但我會回到你身邊...... – cnapsys

+0

沒關係......我是個白癡。這些文件確實發佈得很好。問題是我正在用isset($ _ POST ['file []'])進行測試,如果沒有真正上傳文件,它總是被設置,但也是空的。嘆息 – cnapsys

+0

我遇到的另一個問題是每次上傳後我都沒有重置文件字段,所以以前的文件一直在上傳,並搞亂了我的測試。現在一切都很好。 thx每個人試圖幫助 – cnapsys