البرمجة

حل مشكلة عدم ظهور الملفات بعد رفعها في PHP

تعتبر مشكلة تحميل الملفات في PHP وعدم ظهورها في الدليل من المشكلات التي قد يواجهها الكثيرون أثناء تطوير تطبيقاتهم. لفهم السبب وحل هذه المشكلة، يجب أولاً فهم الشيفرة التي قد تكون سبباً في هذا السيناريو.

قد يكون هناك عدة أسباب لعدم ظهور الملفات في الدليل المستهدف، ومن بينها:

  1. أذونات الدليل:
    يجب التحقق من أذونات الدليل المستهدف. يجب على السيرفر أن يكون لديه إذن كافٍ للكتابة في الدليل “uploads/”.

  2. المسار الصحيح للدليل:
    تأكد من أن المسار المحدد للدليل الذي يتم تحميل الملفات إليه هو المسار الصحيح. في الشيفرة المقدمة، يُفترض أن يكون الدليل المستهدف “uploads/” في نفس المجلد الذي يحتوي على ملف PHP الرئيسي.

  3. تكوين PHP:
    تأكد من أن تكوينات PHP على السيرفر مضبوطة بشكل صحيح لدعم تحميل الملفات. يمكنك التحقق من قيم مثل upload_max_filesize و post_max_size في ملف تكوين PHP.

  4. التحقق من الأخطاء:
    قد يكون هناك أخطاء في التحميل تتطلب التحقق من سجلات الأخطاء. يمكنك إضافة كود لعرض الأخطاء المتعلقة بعملية التحميل لفهم ما إذا كان هناك خطأ ما.

  5. تحديث المسار في الشيفرة:
    تحقق من المسار الكامل للدليل “uploads/” في الكود. في الشيفرة المقدمة، يعتمد المسار على الموقع الحالي لملف PHP الرئيسي. تأكد من أن المسار محدد بشكل صحيح بناءً على تنظيم الملفات في مشروعك.

مراجعة الشيفرة المقدمة، يظهر أن الكود يُفحص ما إذا كان الملف المرفوع هو صورة أم لا، ويظهر رسالة بناءً على ذلك. قد يكون هذا الشرط هو سبب عدم رؤية الملفات في الدليل إذا لم تكن الملفات المرفوعة هي صور.

لتحديد الخلل بشكل أفضل، يمكنك إضافة مزيد من التحققات ورسائل السجل للتحقق من مراحل عملية التحميل.

المزيد من المعلومات

بالطبع، دعونا نستكمل تحليل الكود ونقدم بعض المقترحات لتحديد سبب عدم ظهور الملفات في الدليل.

في الشيفرة المقدمة، يبدو أن الجزء الخاص بتحميل الملفات يتوقف عند التحقق من ما إذا كان الملف هو صورة أم لا، ولكن لا يوجد جزء يقوم بفعل فعلي لتحميل الملف إلى الدليل المستهدف. قد يكون هذا هو السبب الرئيسي وراء عدم ظهور الملفات في الدليل.

لحل هذه المشكلة، يمكنك إضافة الكود اللازم لنقل الملف المحمل إلى الدليل المستهدف. يمكنك استخدام دالة move_uploaded_file في PHP لنقل الملف من المسار المؤقت إلى الدليل النهائي. فيما يلي مثال على كيفية تحديث الجزء المتعلق بـ PHP:

php
$target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); $uploadOk = 1; $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION); // Check if image file is a actual image or fake image if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "File is an image - " . $check["mime"] . "."; $uploadOk = 1; // Move uploaded file to the target directory if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "The file ". basename( $_FILES["fileToUpload"]["name"]). " has been uploaded."; } else { echo "Sorry, there was an error uploading your file."; } } else { echo "File is not an image."; $uploadOk = 0; } } ?>

بعد تحديث الشيفرة بهذا الشكل، يجب أن يتم نقل الملف المحمل بنجاح إلى الدليل المستهدف. تأكد من أن الدليل “uploads/” لديه الأذونات اللازمة للكتابة، وبعد ذلك قم بتحميل ملف جديد وتحقق من ظهوره في الدليل.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر