2010-11-09 7 views

risposta

16

provare questo:

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

http://php.net/umask

+0

Perché si imposta un '$ old_umask = umask (0);' e quindi 'umask ($ old_umask);'? perché impostarlo una volta in cima è sufficiente perché lo stai impostando di nuovo in finale? –

0

Umask del processo è impostato su 0022. Avrete bisogno di impostare a 0 se si desidera creare qualcosa con quei due set di bit di scrittura.

3

Prova questa:

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

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

Reference

+0

Dovresti reimpostarlo sul valore precedente. Strane cose potrebbero accadere altrimenti. – jwueller

1

Questo funziona davvero per me !, si dovrebbe chiudere ora a questa domanda!

  1. Creare la directory!
  2. Fornire 777 autorizzazioni!

    $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. Buona visione!

+1

Inoltre, il secondo argomento di 'mkdir()' è ** NOT ** applicato in modo ricorsivo. Quindi, è necessario cambiare i permessi usando 'chmod()' in seguito. – Kamiccolo