Ben de aynı sorunla karşı karşıya olduğum için burada bir cevap vermek istiyorum - $ _FILES eleman başka bir form gibi aynı yazı bir parçası olarak kullanılabilir istiyoruz. Cevabım mrtnmgs'e dayanıyor, ancak bu soruya eklenen yorumları not ediyor.
İlk olarak: Dropzone verilerini ajax aracılığıyla yayınlar
formData.append
Seçeneği hala kullanmanız, UX eylemleriyle uğraşmanız gerektiği anlamına gelir - yani bunların hepsi perde arkasında gerçekleşir ve tipik bir form gönderisi değildir. Veriler url
parametrenize gönderilir .
İkincisi: Bu nedenle bir form gönderisini taklit etmek istiyorsanız, kaydedilen verileri depolamanız gerekir
Bu , kullanıcı tarafından gönderilen verilerin alındığı sayfaya gitmeyeceğinden, kullanıcı tarafından başka bir sayfa yüklemesinde kullanılabilen bir oturumda $_POST
veya $_FILES
oturumda sunucu tarafı kodunun saklanmasını gerektirir .
Üçüncüsü: Kullanıcıyı bu verilerin işlendiği sayfaya yönlendirmeniz gerekir
Şimdi verilerinizi bir oturumda yayınladınız, kullanıcı için ek bir sayfada görüntülemeniz / işlemeniz gerekiyor. Kullanıcıyı bu sayfaya da göndermeniz gerekir.
Benim örneğim için:
[Dropzone kodu: Jquery kullanır]
$('#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';
})
},
});