2016-01-24 2 views
0

Я попытался решением от другого вопроса (codeigniter creating a directory), где он говорит, что использовать:CodeIgniter создать папку с именем переменной

$path = "uploads/product"; 

if(!is_dir($path)) //create the folder if it's not already exists 
{ 
    mkdir($path,0755,TRUE); 
} 

Это не работает для меня по какой-то причине

Это мой код

//previous line is me inserting data into the database. $result is the result from the inser. 

    if($result) 
     { 
      if(!is_dir($path)) 
      { 
       mkdir($path,0755,TRUE); 

       //print_r("aasifnuoiaasifnuoiaasifnuoiaasifnuoiaasifnuoiaasifnuoiaasifnuoiaasifnuoiaasifnuoiaasifnuoiaasifnuoi"); 
       redirect('manager/administrator/users/index'); 
      } 
      else 
      { 
       die('Failed to create folders...'); 
      } 

     } 
     else 
     { 
      redirect('manager/administrator/users/index'); 
     } 

Я также пробовал без имени переменной, но папка не отображается. Пожалуйста помоги.

+0

что за ошибка? – Federkun

+0

Нет ни одного. Папка вообще не отображается. – JianYA

+0

Вы включили 'display_errors'? – Federkun

ответ

0

Я уверен, что это связано с тем, что каталог $ path не может быть записан. Если это так, вам может понадобиться использовать FTP-клиент, чтобы предоставить пользователям PHP права на создание файлов и папок в этом каталоге рекурсивно.

$path = './assets/files/'.$company; 
$announcementpath = $path . '/announcements'; 
if(!is_dir($path)){ 
    if(is_writeable('./assets/files/')){ 
    if(mkdir($path,0755,TRUE)){ 
     echo "Created $path"; 
     if(mkdir($announcementpath,0755,TRUE)){ 
     echo "Created $announcementpath"; 
     } else { 
     echo "Failed to create $announcementpath"; 
     } 
    } else { 
     echo "Failed to create $path"; 
    } 

    } else { 
    echo 'PHP does not have the privileges to modify "./assets/files/" directory.' 
    $stat = stat($path); 
    print_r(posix_getpwuid($stat['uid'])); 

    chmod($path, 0755); // trying to change permissions 
    //chown($path, $stat['uid']); 
    } 

} else { 
    echo 'directory already exists.'; 
} 
+0

В настоящее время я использую локальный сервер под названием MAMP. Это то же самое? – JianYA

+0

Я пробовал это, но ошибка не появляется. Кажется, что путь действителен, но как-то не создается папка. – JianYA

+0

В 'if (is_dir ($ path)) была опечатка {', попробуйте сейчас – Xorifelse

0

Я наконец выяснил, в чем были проблемы. Я не размещал имя для каталога, и это было причиной ошибок заголовка.

$path = "./files/".$directory; 
     if($result) 
     { 
      if(!is_dir($path)) 
      { 
       mkdir($path,0755,TRUE); 
       redirect('manager/administrator/users/index'); 
      } 
      else 
      { 
       die('Failed to create folders...'); 
      } 

     } 
     else 
     { 
      redirect('manager/administrator/users/index'); 
     } 
0

Удалить базовый url из вашей траектории. Ваш путь должен быть таким, как

$path = "assets/folder/"; 
+0

Просьба представить более подробное объяснение обоснования вашего ответа. – toonice