আমিও এখানে একই প্রশ্নের জবাব দিতে চাই কারণ আমিও একই সমস্যার মুখোমুখি হয়েছি - আমরা চাই যে post _FILES উপাদানটি অন্য পোস্ট হিসাবে একই পোস্টের অংশ হিসাবে উপলব্ধ। আমার উত্তর @ mrtnmgs এর উপর ভিত্তি করে তবে সেই প্রশ্নের সাথে যুক্ত মন্তব্যগুলিকে নোট করে।
প্রথমত: ড্রপজোন এটিজ্যাক্সের মাধ্যমে তার ডেটা পোস্ট করে
কেবলমাত্র আপনি formData.append
বিকল্পটি ব্যবহারের অর্থ এখনও আপনার ইউএক্স ক্রিয়াগুলি মোকাবেলা করতে হবে - অর্থাত্ এই সমস্তটি পর্দার আড়ালে ঘটে এবং কোনও সাধারণ ফর্ম পোস্ট নয়। আপনার url
প্যারামিটারে ডেটা পোস্ট করা হয়েছে ।
দ্বিতীয়ত: আপনি যদি কোনও ফর্ম পোস্ট নকল করতে চান তবে আপনাকে পোস্ট করা ডেটা সংরক্ষণ করতে হবে
এটি আপনার $_POST
বা $_FILES
একটি সেশনে সংরক্ষণ করার জন্য সার্ভার সাইড কোডের প্রয়োজন যা অন্য পৃষ্ঠার লোডে ব্যবহারকারীর জন্য উপলব্ধ যেহেতু ব্যবহারকারী পোস্ট করা ডেটা প্রাপ্ত পৃষ্ঠায় যাবে না।
তৃতীয়ত: আপনাকে এই পৃষ্ঠায় ব্যবহারকারীকে পুনর্নির্দেশ করতে হবে যেখানে এই ডেটাটি করা হয়
এখন আপনি আপনার ডেটা পোস্ট করেছেন, এটি একটি সেশনে সংরক্ষণ করেছেন, আপনাকে অতিরিক্ত পৃষ্ঠায় ব্যবহারকারীর জন্য এটি প্রদর্শন / ক্রিয়া করতে হবে। আপনাকে সেই পৃষ্ঠাতে ব্যবহারকারীকে প্রেরণ করতে হবে।
সুতরাং আমার উদাহরণের জন্য:
[ড্রপজোন কোড: জ্যাকুরি ব্যবহার করে]
$('#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';
})
},
});