Avatar ·

إنشاء مجلد إذا لم يكن موجودًا: الطريقة الصحيحة في PHP

مرحبًا بالجميع! أنا مبتدئ في PHP وأحاول إنشاء CMS بسيطة على WordPress. أحتاج عند تحميل الصور إلى الخادم إنشاء دليل حسب التاريخ، مثل /uploads/2024/03/. لكني أحصل دائمًا على خطأ "failed to open stream: No such file or directory" إذا كانت المجلدات غير موجودة بعد.

إليك الكود الحالي الخاص بي:

$path = '/var/www/html/uploads/' . date('Y/m');
$file = $path . '/image.jpg';

// أحاول حفظ الملف
file_put_contents($file, $data);

لقد جربت بالفعل استخدام mkdir($path) قبل الكتابة، لكن المجلد لا يزال لا يُنشأ. بحثت في Google — يقولون إنه يجب التحقق من الوجود. أضفت التحقق:

if (!file_exists($path)) {
    mkdir($path);
}

لكن الآن أحصل على خطأ "mkdir(): No such file or directory"! ما الذي أفعله بشكل خاطئ؟ لماذا لا يستطيع mkdir إنشاء مجلد إذا لم يكن موجودًا؟ هل أحتاج إلى تعيين الأذونات؟ أم أنني أحدد المسار بشكل خاطئ؟ أرشدوني إلى كيفية إنشاء مجلد متداخل بشكل صحيح.