Saya ingin berkontribusi jawaban di sini karena saya juga menghadapi masalah yang sama - kami ingin elemen $ _FILES tersedia sebagai bagian dari pos yang sama dengan formulir lain. Jawaban saya didasarkan pada @ mrtnmgs namun mencatat komentar yang ditambahkan ke pertanyaan itu.
Pertama: Dropzone memposting datanya melalui ajax
Hanya karena Anda menggunakan formData.append
opsi masih berarti bahwa Anda harus menangani tindakan UX - yaitu ini semua terjadi di belakang layar dan bukan bentuk posting yang khas. Data diposting ke url
parameter Anda .
Kedua: Jika Anda ingin menirukan postingan form, Anda perlu menyimpan data yang diposting
Ini memerlukan kode sisi server untuk menyimpan $_POST
atau$_FILES
dalam sesi yang tersedia untuk pengguna di halaman lain karena pengguna tidak akan pergi ke halaman di mana data yang diposting diterima.
Ketiga: Anda harus mengarahkan pengguna ke halaman tempat data ini ditindaklanjuti
Sekarang Anda telah memposting data Anda, menyimpannya dalam satu sesi, Anda perlu menampilkan / mengambil tindakan untuk pengguna di halaman tambahan. Anda perlu mengirim pengguna ke halaman itu juga.
Jadi untuk contoh saya:
[Kode Dropzone: Menggunakan Jquery]
$('#dropArea').dropzone({
url: base_url+'admin/saveProject',
maxFiles: 1,
uploadMultiple: false,
autoProcessQueue:false,
addRemoveLinks: true,
init: function(){
dzClosure = this;
$('#projectActionBtn').on('click',function(e) {
dzClosure.processQueue(); /* My button isn't a submit */
});
// My project only has 1 file hence not sendingmultiple
dzClosure.on('sending', function(data, xhr, formData) {
$('#add_user input[type="text"],#add_user textarea').each(function(){
formData.append($(this).attr('name'),$(this).val());
})
});
dzClosure.on('complete',function(){
window.location.href = base_url+'admin/saveProject';
})
},
});