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

السؤال

نشر (معدل)

لدي مشكلة في كود php  لا يستطيع وضع الملف في الفولدر رغم انني اعطيته الصلاحيات الكاملة، ويرجع لي

Warning: file_put_contents(images2/2024/imk.jpg): failed to open stream: No such file or directory in /home/1.****.com/public_html/getimg.php on line 79

اين تكمن المشكلة، هذه المشكلة ظهرت لي مؤخرا بعد تركيب احد السكريبتات في السرفر  Ubuntu 

هل تكون من  Owner؟

 

Screenshot_3.png

تم التعديل في بواسطة محمد اصفار
تصويب

Recommended Posts

  • 1
نشر

تظهر الرسالة التحذيرية أن هناك مشكلة في فتح المجلد أو الملف المحدد. يمكن أن تكون المشكلة ناتجة عن عدة أسباب مثل ان المسار غير صحيح: تأكد من أن المسار images2/2024/imk.jpg هو المسار الصحيح وأنه موجود بالفعل. يبدو أن المجلد "images2" غير موجود في المسار المحدد في الرسالة التحذيرية. قد يكون المسار الصحيح هو images/2024/imk.jpg.

تأكد من أن الأذونات مضبوطة بشكل صحيح لجميع المجلدات التي تشمل المسار الكامل. الصورة تظهر أن مجلد "images" لديه أذونات كاملة، ولكن تأكد أيضا من الأذونات للمجلدات الفرعية.

للتأكد من وجود المسار الصحيح:

ls -l /home/1.****.com/public_html/images2/2024/

إذا لم يكن المجلد موجودا، يمكنك إنشاء المجلدات الناقصة:

mkdir -p /home/1.****.com/public_html/images2/2024/

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

  • 0
نشر

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

chmod -R 777 /home/1.****.com/public_html/images2/

وايضان يجب ان تتأكد من أن أسماء المجلدات في الكود تتطابق بالضبط مع الأسماء الموجودة في النظام، بما في ذلك الأحرف الكبيرة والصغيرة. في بعض الأحيان، قد تكون المشكلة ناتجة عن حرف مختلف في الاسم.

بعد هذه التأكيدات اذا استمرت المشكله جرب ان تضف بعض التحقق من الأخطاء في الكود الخاص بك للحصول على مزيد من التفاصيل حول الخطأ لكي نستطيع ايجاد اين المشكله بالظبط

$path = 'images2/2024/imk.jpg';
if (!file_exists(dirname($path))) {
    die('Directory does not exist: ' . dirname($path));
}
if (!is_writable(dirname($path))) {
    die('Directory is not writable: ' . dirname($path));
}
if (file_put_contents($path, $data) === false) {
    die('Failed to write to file: ' . $path);
}

جرب هذه الخطوات وإذا استمرت المشكلة، قدم لي الرسائل الجديدة التي تحصل عليها

  • 1
نشر
بتاريخ 2 دقائق مضت قال محمد اصفار:

عند تنفيد السطر الاول حلت المشكلة

غريب، كانت الصلاحيات في الفولدر 777 من البداية

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

يمكنك استخدام الأوامر مثل ls -l للتحقق من الأذونات ومالك الملفات بشكل دوري خاصة بعد التحديثات أو التغييرات الكبيرة.

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...