Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"The upload path does not appear to be valid". Codeigniter file upload not working [closed]

Tags:

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

<?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.

The Controller

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.

Update

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?

like image 344
Aniket Avatar asked Dec 29 '11 06:12

Aniket


People also ask

How can upload file path in CodeIgniter?

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'].

Which method is used to upload file in CodeIgniter?

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.


1 Answers

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);

like image 117
Aniket Avatar answered Sep 17 '22 14:09

Aniket