2010-11-09 15 views

Odpowiedz

16

Spróbuj tego:

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

http://php.net/umask

+0

Dlaczego ustawiasz '$ old_umask = umask (0);' a następnie 'umask ($ old_umask);'? ponieważ ustawienie go raz na górze wystarczy, dlaczego ustawiasz go ponownie na finał? –

0

umask procesu jest ustawiony na 0022. Musisz ustawić na 0, jeśli chcesz stworzyć coś z tymi dwoma zestawami bitów zapisu.

3

Spróbuj tego:

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

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

Reference

+0

Powinieneś powrócić do poprzedniej wartości. Dziwne rzeczy mogą się zdarzyć inaczej. – jwueller

1

To naprawdę działa na mnie !, należy zamknąć teraz na to pytanie!

  1. Utwórz katalog!
  2. Podaj 777 uprawnień!

    $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. Ciesz się tym!

+1

Ponadto, drugi argument 'mkdir()' jest ** NIE ** zastosowany rekurencyjnie. Tak więc, musisz zmienić uprawnienia za pomocą 'chmod()'. – Kamiccolo

Powiązane problemy