لن يقوم كائن تحميل صورة PHP بإنشاء دليل على Windows

StackOverflow https://stackoverflow.com/questions/2811868

  •  26-09-2019
  •  | 
  •  

سؤال

أنا أكتب فصلًا يقبل Product_id ومجموعة $ _files كمؤسسة. يحفظ الفصل هذه المتغيرات ويستخدمها لإنشاء دليل جديد يسمى بواسطة Product_id ويحاول نسخ ملف Temp إلى الدليل المحدد.

لسبب ما ، لا يصل صفي إلى حد إنشاء دليل (والذي يجب أن يحدث في المُنشئ)

إليك رابط إلى الكود الخاص بي: http://pastie.org/955454

هل كانت مفيدة؟

المحلول

يمكن أن تكون هذه مشكلة أذونات. أنت تقول إنه خادم يعتمد على Windows؟ هل تملك هذا الجهاز؟ هل تستخدم خادم مخصص؟ هل تستخدم خادم مشترك؟

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

نصائح أخرى

يبدو أنك تستخدم مسارًا مطلقًا في هذا الدليل $ this-> في المُنشئ ، بمعنى آخر ، سيتم التعامل معه على أنه C: Images تحميل (أو أي محرك أقراص تقوم بتشغيله من الموقع). إذا كنت تقصد أن يكون هذا مسارًا نوع URI ، فستحتاج إلى إضافة جذر الويب الخاص بك إلى المسار:

$this->directory = $_SERVER['DOCUMENT_ROOT'] . '/images/upload/' . $this->prod_id

قد ترغب أيضًا في التحقق من عودة MKDIR (). إنه خاطئ عند الفشل ، وبعد ذلك يمكنك التحقق منه error_get_last() (php> = 5.2) لمعرفة بالضبط سبب فشلها.

} else {
     $ret = mkdir($this->directory, 0755, true);
     if ($ret === FALSE) {
        die("mkdir() failed with: " . error_get_last());
     }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top