Saravanan Sampathkumar
Saravanan Sampathkumar

Reputation: 3261

access folder outside CodeIgniter

I've been to trying to upload images using code igniter and it works perfectly when the upload folder is just outside of application folder. But my problem is when I try to access folder which is outside whole code igniter folder it is throwing me a error. How to access the folder outside the code igniter folder? I tried $_SERVER['DOCUMENT_ROOT']. But it dint help.

$name = $_POST['name'];
        $id = $_POST['id'];
        if (isset($_FILES['upload']['name'])) {
            // total files //
            $count = count($_FILES['upload']['name']);
            // all uploads //
            $uploads = $_FILES['upload'];

            for ($i = 0; $i < $count; $i++) {
                if ($uploads['error'][$i] == 0) {
                    $firstimage = $uploads['name'][$i];
                    $secondimage = $uploads['name'][$i];

                    move_uploaded_file($uploads['tmp_name'][$i], $_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id.'/'.$uploads['name'][$i]);
                    $config2['image_library'] = 'gd2';
                    $config2['source_image'] = $_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id.'/'.$uploads['name'][$i];
                    $config2['new_image'] = $_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id.'/thumbnail/'.$uploads['name'][$i];
                    $config2['maintain_ratio'] = FALSE;
                    $config2['create_thumb'] = TRUE;
                    $config2['thumb_marker'] = '_thumb';
                    $config2['width'] = 75;
                    $config2['height'] = 50;
                    $config2['overwrite'] = TRUE;

                    $this->image_lib->initialize($config2);
                    $this->load->library('image_lib',$config2);
                    if ( ! $this->image_lib->resize())
                    {
                        echo $this->image_lib->display_errors();
                    }

                    $config3['image_library'] = 'gd2';
                    $config3['source_image'] = $_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id.'/'.$uploads['name'][$i];
                    $config3['new_image'] = $_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id.'/resize/'.$uploads['name'][$i];
                    $config3['maintain_ratio'] = FALSE;
                    $config3['create_thumb'] = TRUE;
                    $config3['thumb_marker'] = '_thumb';
                    $config3['width'] = 470;
                    $config3['height'] = 470;
                    $config3['overwrite'] = TRUE;

                    $this->image_lib->initialize($config3);
                    $this->load->library('image_lib',$config3);
                    if ( ! $this->image_lib->resize())
                    {
                        echo $this->image_lib->display_errors();
                    }

                    }


            }
            $this->load->view('head');
            $data = array(
                'name' => $name,
                'id' => $id
            ); 

Upvotes: 1

Views: 2762

Answers (1)

Samutz
Samutz

Reputation: 2300

After discussing in comments, the problem is likely the move_uploaded_file() function is trying to move the file to a directory that doesn't exist yet.

move_uploaded_file($uploads['tmp_name'][$i], $_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id.'/'.$uploads['name'][$i]);

Before the file can be moved the folder needs to be created. If $id is new, it has probably not been created yet. So...

if (!is_dir($_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id)) {
    mkdir($_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id);
}
move_uploaded_file($uploads['tmp_name'][$i], $_SERVER['DOCUMENT_ROOT'].'tuition/tuitionimage/'.$id.'/'.$uploads['name'][$i]);

Upvotes: 1

Related Questions