2010-11-09 6 views
7

मैं php का उपयोग कर अपने सर्वर पर एक फ़ोल्डर बनाने की कोशिश कर रहा हूं जब मैं इसे 0777 पर सेट करता हूं तो यह 755 के रूप में आता है?mkdir() php में 755 पर फ़ोल्डर अनुमति सेट कर रहा है लेकिन मुझे 777 की आवश्यकता है?

mkdir($create_path, 0777); 

धन्यवाद

उत्तर

16

इस प्रयास करें:

$old_umask = umask(0); 
mkdir($create_path, 0777); 
umask($old_umask); 

http://php.net/umask

+0

आप 'old old_umask = umask (0); 'और फिर' umask ($ old_umask) क्यों सेट करते हैं; '? क्योंकि इसे शीर्ष पर एक बार सेट करना पर्याप्त है कि आप इसे फिर से क्यों सेट कर रहे हैं? –

0

प्रक्रिया के umask 0022. पर सेट है आप 0 करने के लिए यह निर्धारित करने के लिए अगर आप चाहते हैं की आवश्यकता होगी उन दो लिखने बिट्स सेट के साथ कुछ बनाने के लिए।

3

इस प्रयास करें:

<?php 
// files will create as -rw------- 
umask(0); 
// create a file, eg fopen() 

chmod('/path/to/directory', 0777); 
?> 

Reference

+0

आपको इसे पिछले मान पर रीसेट करना चाहिए। अजीब बातें अन्यथा हो सकती हैं। – jwueller

1

यह वास्तव में मेरे लिए काम करता !, आप अब इस सवाल का बंद हो जाना चाहिए!

  1. निर्देशिका बनाएं!
  2. 777 अनुमतियां दें!

    $estructure = '../files/folderName'; 
    
    if(!mkdir($estructure, 0777, true)){ 
        echo "<br/><br/>ERROR: Fail to create the folder...<br/><br/>"; 
    } else echo "<br/><br/>!! Folder Created...<br/><br/>"; 
    
    chmod($estructure, 0777); 
    
  3. इसका आनंद लें!

+1

इसके अलावा, 'mkdir() 'का दूसरा तर्क ** नहीं ** पुनरावर्ती रूप से लागू किया गया है। इसलिए, आपको 'chmod()' के बाद अनुमतियों को बदलने की आवश्यकता है। – Kamiccolo

संबंधित मुद्दे