Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

File permission with upload class of CodeIgniter

Hi I need to put a permission 777 to my uploaded files but I dont find any docs for uploaded files in codeigniter... Is it possible to put permission 777 with the upload class of codeigniter ??

$group_id = $this->input->post('group_id', TRUE);

   // unlink('static/images/uploads/44');
  // rmdir('static/images/uploads/45');

    $dir = is_dir('../www/static/images/uploads/'.$group_id);
    if($dir){
            $config['upload_path'] = '../www/static/images/uploads/'.$group_id;
            echo "test";
    }

    else{
        mkdir('../www/static/images/uploads/'.$group_id, 0777);
        $config['upload_path'] = '../www/static/images/uploads/'.$group_id;
    }


    $config['allowed_types']     = 'docx|pdf|doc|gif|jpg|png|tiff';
    $config['max_size'] = '10000000';
    $config['max_width']  = '999999';
    $config['max_height']  = '99999';
    $this->load->model('Teacher_model');



    $this->load->library('upload', $config);

    if ( ! $this->upload->do_upload())
    {
        $error = array('error' => $this->upload->display_errors());

       print_r($error);

        //$this->load->view('school/teacher/upload_form', $error);
    }
    else
    {
        $data = array('upload_data' => $this->upload->data());



            $name = $this->input->post('name', TRUE);
            $path = $data['upload_data']['file_name'];
            $group_id = $this->input->post('group_id', TRUE);

            $this->Teacher_model->add_ressources($group_id,$name,$path);


         redirect('school/teachers/#tabs_group_ressource'.$group_id, 'location', 301);
    }
like image 705
user1029834 Avatar asked Jan 11 '12 15:01

user1029834


2 Answers

You can use chmod to change the permissions. Something like this may work. After the do_upload you could try adding the following line

if(is_file($config['upload_path']))
{
    chmod($config['upload_path'], 777); ## this should change the permissions
}
like image 183
Robbo_UK Avatar answered Nov 01 '22 22:11

Robbo_UK


You can use chmod along with umask.

$old = umask(0);
$logofilepath = $config['upload_path'].$filename;
if(is_file($logofilepath))
{
chmod($logofilepath, 0777);
}
umask($old);
like image 22
SMJ Avatar answered Nov 01 '22 20:11

SMJ