سؤال

أحاول تحميل ملف إلى الخادم الخاص بي باستخدام مساعد نموذج تحميل ملف CakePHP.
أقوم حاليًا بتشغيل CakePHP 1.3 على جهاز الكمبيوتر الخاص بي للتطوير (Mac OSX).
عند إرسال النموذج، فإنه يحتوي في المتغيرات التي تم تمريرها إلى وحدة التحكم على اسمه المؤقت: /var/tmp/name ومن ثم اسمه كاسم الملف.
ومع ذلك، عندما أحاول إعادة تسمية الملف إلى موقع أكثر استدامة، فإنه يفشل، وإذا ذهبت إلى الموقع، فهو غير موجود.

أحصل على رسائل الخطأ هذه:

Warning (2): move_uploaded_file(Users/chustar/Documents/IMAG0001.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory [APP/controllers/users_controller.php, line 41]
Warning (2): move_uploaded_file() [function.move-uploaded-file]: Unable to move '/private/var/tmp/php98lzsP' to '/Users/chustar/Documents/IMAG0001.jpg' [APP/controllers/users_controller.php, line 41]
Warning (2): Cannot modify header information - headers already sent by (output started at /Library/WebServer/Documents/cake/libs/debugger.php:673) [CORE/cake/
هل كانت مفيدة؟

المحلول

أتلقى هذا الخطأ كثيرًا عندما لا يتم تعيين الأذونات بشكل صحيح على الدليل الهدف.لأغراض التوضيح، سأفترض أنك تقوم بتشغيل خادم ويب Apache وأنه يعمل كمستخدم اسمه www.الذي - التي www يجب أن يكون لدى المستخدم حق الوصول للكتابة إلى الدليل الهدف.لا يتعلق الأمر بالأذونات أنت لديك، ولكن ما هي الأذونات التي يمتلكها مستخدم خادم الويب.

إذا وجدت أن هذه ليست المشكلة، فقد تكون بعض التفاصيل الإضافية و/أو بعض التعليمات البرمجية مفيدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top