मैं यहां एक उत्तर देना चाहता हूं क्योंकि मुझे भी इसी मुद्दे का सामना करना पड़ा है - हम चाहते हैं कि $ _FILES तत्व उसी पोस्ट के हिस्से के रूप में दूसरे रूप में उपलब्ध हो। मेरा जवाब @mrtnmgs पर आधारित है, हालांकि उस सवाल पर टिप्पणी को जोड़ा गया है।
सबसे पहले: Dropzone आजतक के माध्यम से अपना डेटा पोस्ट करता है
सिर्फ इसलिए formData.append
कि आप विकल्प का उपयोग करते हैं, इसका मतलब है कि आपको UX क्रियाओं से निपटना होगा - यानी यह सब पर्दे के पीछे होता है और एक विशिष्ट रूप पोस्ट नहीं होता है। डेटा आपके url
पैरामीटर पर पोस्ट किया गया है ।
दूसरी बात: यदि आप एक फॉर्म पोस्ट की नकल करना चाहते हैं, तो आपको पोस्ट किए गए डेटा को संग्रहीत करने की आवश्यकता होगी
यह आपके $_POST
या $_FILES
एक सत्र में स्टोर करने के लिए सर्वर साइड कोड की आवश्यकता होती है जो उपयोगकर्ता को दूसरे पृष्ठ लोड पर उपलब्ध है क्योंकि उपयोगकर्ता उस पृष्ठ पर नहीं जाएगा जहां पोस्ट किया गया डेटा प्राप्त होता है।
तीसरा: आपको उपयोगकर्ता को उस पृष्ठ पर पुनर्निर्देशित करना होगा जहां यह डेटा कार्रवाई की जाती है
अब आपने अपना डेटा पोस्ट कर दिया है, इसे एक सत्र में संग्रहीत किया है, आपको इसे एक अतिरिक्त पृष्ठ में उपयोगकर्ता के लिए प्रदर्शित / कार्रवाई करने की आवश्यकता है। आपको उपयोगकर्ता को उस पेज पर भी भेजने की आवश्यकता है।
तो मेरे उदाहरण के लिए:
[Dropzone कोड: 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';
})
},
});