CodeIgniter Forums

Full Version: “The upload path does not appear to be valid”. File upload not working
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

El Forum

[eluser]Aniket Pant[/eluser]
I have been stuck at this point for a long time and even after reading a number of posts, I haven't been able to find a solution.

I am making an interface for a quiz, and in the admin interface, I need to upload images to a folder and upload the image name to the database. I can handle to other things but the image upload is bugging me alot for a long time.

Please take a look at my code below.

The Form

Code:
<?php
        echo form_open_multipart('admin/update_question');
    ?>
    <?php
        echo form_hidden('questionid', $question->level);
    ?>
    <?php
        echo form_label('Comment', 'comment');
    ?>
    <div class="input">
    &lt;?php
        $arr_comment = array(
            'name'  => 'comment',
            'id'    => 'comment',
            'value' => $question->comment
            );
            echo form_textarea($arr_comment);
    ?&gt;
    </div>
    <br/>
    &lt;?php
        echo form_label('Answer', 'answer');
    ?&gt;
    <div class="input">
    &lt;?php
        $arr_answer = array(
                'name'  => 'answer',
                'id'    => 'answer',
                'size'  => '10000',
                'value' => $question->answer
        );
        echo form_input($arr_answer);
    ?&gt;
    </div>
    <br/>
    &lt;?php
        echo form_label('Image', 'userfile');
    ?&gt;
    <div class="input">
    &lt;?php
        $arr_image = array(
            'name'  => 'userfile',
            'id'  => 'userfile',
            'value' => ''
        );
        echo form_upload($arr_image);
    ?&gt;
    </div>
    <br/>
    &lt;?php
    $arr_button = array(
        'name'  => 'submit',
        'value' => 'Update Question',
        'class' => 'btn primary large'
        );
    ?&gt;
    <div class="input">
    &lt;?php
        echo form_submit($arr_button);
    ?&gt;
    </div>
    <br/>
    &lt;?php
    echo form_close();
    if ($error != '')
        echo '<div class="alert-message error">'. $error.' </div>';
    echo validation_errors();
    ?&gt;

I have tried running a js which returns the filename in the upload box, and it does return it.

The Controller

Code:
public function update_question() {
            $comment = $this->input->post('comment');
            $answer = $this->input->post('answer');
    
            echo var_dump(is_dir(base_url().'uploads/'));
    
            /*
             * Uploading image
             */
            $config['upload_path'] = base_url().'/uploads/';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_width'] = 0;
            $config['max_height'] = 0;
            $config['max_size'] = 0;
            $config['encrypt_name'] = TRUE;
    
            $this->load->library('upload', $config);
            if ( ! $this->upload->do_upload())
            {
                    $error = array('error' => $this->upload->display_errors());
                    print_r($error);
            }
            else
            {
                    $arr_image = array('upload_data' => $this->upload->data());
                    print_r($arr_image);
            }
    
            $questionid = $this->input->post('questionid');
            $question_data = array(
                'comment'   => $comment,
                'answer'    => $answer
            );
            $this->load->model('adminmodel', 'admin');
            $question_data = $this->admin->update_question_data($questionid, $question_data);
            //redirect('admin/questions', 'location');
    }

For my upload path, I have tried a number or combinations and the only one which returned a TRUE value was
Code:
var_dump(is_dir('/wamp/www/quark_edorado/uploads'));
but this also returned the same error.

I do not know where I am going wrong.

Update

My directory structure is

Code:
/application/
/public/
    css/
    fonts/
    images/
    js/
/system/
/uploads/