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.
<?php echo form_open_multipart('admin/update_question'); ?> <?php echo form_hidden('questionid', $question->level); ?> <?php echo form_label('Comment', 'comment'); ?> <div class="input"> <?php $arr_comment = array( 'name' => 'comment', 'id' => 'comment', 'value' => $question->comment ); echo form_textarea($arr_comment); ?> </div> <br/> <?php echo form_label('Answer', 'answer'); ?> <div class="input"> <?php $arr_answer = array( 'name' => 'answer', 'id' => 'answer', 'size' => '10000', 'value' => $question->answer ); echo form_input($arr_answer); ?> </div> <br/> <?php echo form_label('Image', 'userfile'); ?> <div class="input"> <?php $arr_image = array( 'name' => 'userfile', 'id' => 'userfile', 'value' => '' ); echo form_upload($arr_image); ?> </div> <br/> <?php $arr_button = array( 'name' => 'submit', 'value' => 'Update Question', 'class' => 'btn primary large' ); ?> <div class="input"> <?php echo form_submit($arr_button); ?> </div> <br/> <?php echo form_close(); if ($error != '') echo '<div class="alert-message error">'. $error.' </div>'; echo validation_errors(); ?>
I have tried running a js which returns the filename in the upload box, and it does return it.
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 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.
My directory structure is
/application/ /public/ css/ fonts/ images/ js/ /system/ /uploads/
I am operating a Windows machine and using WAMP. Does that make a difference?
It depends upon how you are storing the uploaded data. If you are simply storing like: $data = $this->upload->data(); then access it by $data['full_path']; else if you are storing like $data = array('upload_data' => $this->upload->data()); then access it by $data['upload_data']['full_path'].
File uploading in CodeIgniter has two primary parts—the frontend and the backend. The frontend is taken care of by the HTML form that uses the form input type file. On the backend, the file upload library forms the submitted input from the form and writes it to the transfer registry.
I was autoloading the library and somehow when I was trying to initialize the configuration by $this->load->library('upload', $config);
it wouldn't do so.
Instead I put my config files in config/upload.php
The other method to do so would have been $this->upload->initialize($config);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With