اذهب إلى المحتوى

السؤال

نشر

مرحبا،

أود أن أرفع ملفين باستخدام 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

هل من حل ؟

Recommended Posts

  • 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
نشر

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

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

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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...