0

Kindly have a visit on following link: Demo link for problem

You can view that form is not showing submitted values and not uploading file.

Following is form code :

<form id="frm" name="frm"  method="post" enctype="multipart/form-data">
            <fieldset class="fieldset2">

                <legend class="legend2">Add Bid Type</legend>

                <div class="form_fields">

                <p>
                <label for="subject" class="label2">Bid Type:</label>
                <input type="input" id="type" name="type" class="textfield2" />
                </p>

                <p>
                <label for="subject" class="label2">Bid Type Code:</label>
                <input type="input" id="code" name="code" class="textfield2" />
                </p>


                <p>
                <label for="description" class="label2">Bid Type Description:</label>
                <textarea id="description" name="description" class="textarea2"></textarea>
                </p>




                <p>
                <label for="userfile" class="label2">Icon:</label>
                <input type="file" id="userfile" name="userfile" class="input_file"  />
                </p>


                </div>

            </fieldset>

            <fieldset class="none">
            <p>
                <input type="submit" id="btnsubmit" name="btnsubmit" class="btn" value="Add" />
    <input type="reset" id="btnreset" name="btnreset" class="btn" value="Reset" />
            </p>
            </fieldset>
        </form>`

And following is controller code :

function create() {

        $data = '';


        echo '<pre>';
        echo 'below is Post Fields Data:<br>';  
        print_r($this->input->post());
        echo '<br>Post Fields Data Ends: ';     

    echo '</pre>';



        $this->form_validation->set_rules('type', 'Bid Type', 'trim|required|xss_clean');
        $this->form_validation->set_rules('code', 'Bid Type Code', 'trim|xss_clean');

        $this->form_validation->set_rules('description', 'Bid Type description', 'trim|xss_clean');

        $data['errors'] = array();

        if ($this->form_validation->run()) {
                $data = array(
                    'code'          => $this->form_validation->set_value('code'),
                    'type'          => $this->form_validation->set_value('type'),
                    'description'   => $this->form_validation->set_value('description'),

                );

                if (!is_null($this->bid_types->create_bid_type($data))){
                        $data['errors']['success'] = 'Record Successfully Added!';


                } else {

                    $errors = $this->bid_types->get_error_message();
                    foreach ($errors as $k => $v)   $data['errors'][$k] = $this->lang->line($v);

                }       

        $config['upload_path'] = base_url().'resource/images/uploads/';
        $config['allowed_types'] = 'gif|jpg|png';
        //$config['max_size']   = '100';
        //$config['max_width']  = '1024';
        //$config['max_height']  = '768';

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

    if ( ! $this->upload->do_upload())
    {
        $data['errors']['upload'] = 'Not Uploaded';
        //$data['errors']['upload'] = $this->upload->display_errors();
        //$error = array('error' => $this->upload->display_errors());

        //$this->load->view('upload_form', $error);
    }
    else
    {
        $data['errors']['upload'] = 'Yes Uploaded';
        //$data['errors']['upload'] = $this->upload->data();
        //$data = array('upload_data' => $this->upload->data());

        //$this->load->view('upload_success', $data);
    }

    echo '<pre>';           
        print_r($this->upload->data());

    echo '</pre>';

        } /* END OF FORM VALIDATRION RUN */

        if(!$this->input->is_ajax_request() && !$this->input->get_post('is_ajax'))
        {   
            $this->load->view('bend/bid_type/create', $data);

        }                               


} /* END OF FUNCTION CREATE */ 

Can some one guide me what and where Iam doing wrong and how it can be rectrified.

5 Answers 5

1

File data appears in $_FILE not in $_POST.

I think this line is your problem:

$config['upload_path'] = base_url().'resource/images/uploads/';

This $config['upload_path'] should point to a file system path, not a URL. Try something more like:

$config['upload_path'] = realpath(APPPATH . '../resource/images/uploads/');

which will start from your application folder, up one folder then into resource/images/uploads change it accordingly if its somewhere else.

p.s. Also check your write permissions.

Sign up to request clarification or add additional context in comments.

Comments

0

put $this->output->enable_profiler(TRUE) on the first line of create() function, it will show you very usefull information $_POST global to debug your code like

1 Comment

Thanks for the tip. Can you guide me why File is not uploaded and it is not shown in PROFILER
0

Charles shows that the request from the form submit does contain the post data.

Charles Output

Does anything else happen before the create() function that could wipe the POST data?

1 Comment

PROFILER also showing POST data. But what is wrong with file uploading field, it is simply doesn't working.
0

I would add an action attribute to the form using echo form_open('/phpdemo/b1/admin/bid_type/create') as described in the user manual.

Comments

0

you can not use

$this->form_validation->set_rules('code', 'Bid Type Code', 'trim|xss_clean');

in multipart , so you must create your own function for validation and use callbacks

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.