无法创建文件夹

时间:2011-10-30 08:24:41

标签: php javascript uploadify

使用uploadify允许我网站上的用户上传存储在与其用户名对应的文件夹中的个人资料照片。 例如,用户名为“mrx”的用户具有文件夹“/ beta / profiles / mrx / avatars /”。 它在我的本地系统上运行良好,但是当我上传时,仅使用权限“0000”创建“mrx”父文件夹; 我通过隐藏输入传递用户的上传文件夹,该输入具有其文件夹的路径作为其值。 使用codeigniter和webroot看起来像这样

的public_html /    公测/       应用/       系统/       资产/       型材/           / MRX /    米/

mrx文件夹应该包含“avatars”,但不是由我的uploadify脚本创建的;

这是uploadifiy脚本

if (!empty($_FILES)) {
   $file = new Uploader();
   $path = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/';
   if(!file_exists($path))
   {
      mkdir($path,0777,true);
   }
   $file_temp = $_FILES['Filedata']['tmp_name'];
   $file_name = $file->prep_filename($_FILES['Filedata']['name']);
   $file_name = ereg_replace(" ","_",$file_name);

   $file_ext = $file->get_extension($_FILES['Filedata']['name']);
   $real_name = $file_name;
   $newf_name = $file->set_filename($path, $file_name, $file_ext,TRUE);
   $file_size = round($_FILES['Filedata']['size']/1024, 2);
   $file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES['Filedata']['type']);
   $file_type = strtolower($file_type);
   $targetFile =  str_replace('//','/',$path) . $newf_name;
   move_uploaded_file($file_temp,$targetFile);

   $filearray = array();
   $filearray['file_name'] = $newf_name;
   $filearray['real_name'] = $real_name;
   $filearray['file_ext'] = $file_ext;
   $filearray['file_size'] = $file_size;
   $filearray['file_path'] = $targetFile;
   $filearray['file_temp'] = $file_temp;
   //$filearray['client_id'] = $client_id;

   $json_array = json_encode($filearray);
   echo $json_array;
}else{
    echo "1";   
}

这是将文件夹传递给uploadify的控制器

function avatar()
        {

            $this->isloggedin();
            $data['title'] = "Your Avatar | PheedBakk";
            $data['username'] = $this->session->userdata("username");
            $data['user_id'] = $this->session->userdata('user_id');
            $data['avatar'] = $this->site_config->get_setting_value('default_avatar');
            $data['user'] = $this->user_model->profile($data['username']);
            $data['upload_folder'] = "/beta/profiles/".$this->session->userdata('username')."/avatars";



            $this->load->view('templates/user_header',$data);
            $this->load->view('templates/user-left-bar');
            $this->load->view('settings/avatar');
            $this->load->view('templates/user-right-bar');
            $this->load->view('templates/footer');
        }

出了什么问题?

1 个答案:

答案 0 :(得分:0)

创建一个文件夹,然后创建另一个文件夹而不将递归设置为true ...

$path1 = "/beta/profiles/$username";
$path2 =  "/beta/profiles/$username/avatars";

    mkdir($path1,0777);
    mkdir($path2,0777);

或者在创建文件夹后在目录上调用chmod:

chmod("/beta/profiles/$username/avatars", 0777);