目录已创建,但在本地服务器上不存在-PHP

目录已创建,但在本地服务器上不存在-PHP,php,codeigniter,upload,directory,Php,Codeigniter,Upload,Directory,我在Ubuntu Linux上使用PHP5和Codeigniter 3 我需要上传和存储在服务器上的用户文件,但在上传之前,我需要为用户创建文件将存储的目录。 目录名基于用md5散列的userdata 另外,我正在检查服务器上是否已经创建/存在目录,否则应该创建 public function uploadImage(){ $id = $this->session->userdata('id'); $dir_name = md5($id);

我在Ubuntu Linux上使用PHP5和Codeigniter 3

我需要上传和存储在服务器上的用户文件,但在上传之前,我需要为用户创建文件将存储的目录。 目录名基于用md5散列的userdata

另外,我正在检查服务器上是否已经创建/存在目录,否则应该创建

   public function uploadImage(){

        $id = $this->session->userdata('id');

        $dir_name = md5($id); // create hashed dir name 

        $user_dir = base_url() . 'uploads/user' . '/' . $dir_name;

       // print_r($user_dir);

        if(!file_exists($user_dir)){
            mkdir($user_dir, 0777);
            print_r("created");
        }else{
            print_r("directory exists");
        }
 }
当我运行代码时,它会显示“已创建”,但我看不到目录。它不存在于uploads/users文件夹中。 请帮帮我,我哪里错了。非常感谢使用FCPATH

public function uploadImage(){

   $id = $this->session->userdata('id');

   $dir_name = md5($id); // create hashed dir name 

   /*
       You may need / after FCPATH 

       $user_dir = FCPATH . '/uploads/user/' . $dir_name;
   */

   $user_dir = FCPATH . 'uploads/user/' . $dir_name;

   // print_r($user_dir);

    if(!file_exists($user_dir)){

        mkdir($user_dir, 0777);

        // @mkdir($user_dir, 0777, true);

        print_r("created");

    } else {

        print_r("directory exists");
    }
}

可能的重复可能是您试图在apache没有写访问权限的文件夹中创建一个文件夹。即使mkdir未成功且不表示任何内容,也会到达print_r语句。如果目录不存在,则会打印“created”。这与在成功创建后打印“已创建”不同<代码>变量转储(mkdir(User_dir,0777))我打赌你得到的是假的。我想这不是问题。我要在这些目录中写入命令。是的,它返回false mkaatman