• 0

مشكلة في رفع ملفين في نفس الوقت [PHP]؟

مرحبا،

أود أن أرفع ملفين باستخدام php  وإضافة أسماء الملفين إلى قاعدة البيانات لكن في صف واحد،وذلك باستعمال هذا السكربت : http://tutorialzine.com/2013/05/mini-ajax-file-upload-form/

لكن قمت بالتعديل على ملف php حتى أصبح بهذا الشكل :

if(isset($_FILES['up2'])){

$im = uniqid ('',true)."_".$_FILES['up2']['name'];
$vi = uniqid ('',true)."_".$_FILES['upl']['name'];

    $up_img = move_uploaded_file($_FILES['up2']['tmp_name'], 'assets/'.$im);
    $up_vid = move_uploaded_file($_FILES['upl']['tmp_name'], 'uploads/'.$vi);

        $db->query("INSERT INTO cm_videos (id,title,img,video,category) VALUES (NULL,'$ti2','$im','$vi','$ca2')");

}

فورم الرفع :

<form id="upload" method="post" action="" enctype="multipart/form-data">
        <div id="drop">
            Drop Here
            <a>صورة</a>
            <input type="file" name="up2" id="up2" multiple />
            <input type="file" name="upl" id="upl" multiple />
        </div>

        <ul>
            <!-- The file uploads will be shown here -->
        </ul>
</form>

وبهذا يتم فقط رفع الملف "up2" وعندما أقوم بتغييره في السطر الأول إلى "upl" يتم رفع هذا الأخير، وان قمت بالتحقق من الملفين معا لا يتم رفع أي منهما !
وعندما أستعمل حلقات التكرار يتم إدخال كل ملف في صف منفصل عن الآخر :

vRMBtmb.png

هل من حل ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

استخدم التالي لإنشاء حقلين لإدخال الملفات في جهة العميل

<form id="upload" method="post" action="" enctype="multipart/form-data">
        <div id="drop">
            Drop Here
            <a>صورة</a>
            <input type="file" name="up[]" id="file1" multiple />
            <input type="file" name="up[]" id="file2" multiple />
        </div>

        <ul>
            <!-- The file uploads will be shown here -->
        </ul>
</form>

كما تلاحظ، لقد قمت باستخدام مصفوفة بنفس الاسم في الـ name attribute للحقلين.

الآن من جهة PHP سيكون بإمكانك الوصول لمواصفات الملف الأول عبر:

$_FILES['up']['name'][], $_FILES['up']['tmp_name'][], $_FILES['up']['size'][], $_FILES['up']['type'][]

وللملف الثاني 

$_FILES['up']['name'][1], $_FILES['up']['tmp_name'][1], $_FILES['up']['size'][1], $_FILES['up']['type'][1]

تذكّر بأننا نتعامل مع مصفوفة، فالـ index=0 يمثّل الملف file1 والـ index=1 يمثّل الملف file2 دومًا لأن هذا هو الترتيب الذي حدّدناه في جهة HTML.

السلام عليكم ورحمة الله وبركاته.

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

أعتقد أن أبسط حل لهذه المشكلة هي عن طريق استخدام طريقة تحديث البيانات في mysql، حيث ستضع بيانات الملف الأول ثم حدّث الصف وضع بيانات الملف الثاني عند رفع الملف الثاني.

كما أنه من الأفضل فصل الفورم إلى فورمين، كل واحد يرفع الملفات في مجلد معين، ثم ضع البيانات في صف واحد كما شرحتُ بالأعلى.

لمزيد من المعلومات حول تحديث البيانات في php وmysql، قم بزيارة هذا الدرس.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن