Create New Post

Validating and processing uploaded files in CodeIgniter

In CodeIgniter, you can validate and process uploaded files using CodeIgniter's form validation library and file upload library. 
 

1. Set Up File Upload Preferences:

Configure file upload preferences in application/config/config.php as mentioned in the previous response.

2. Create a Form:

Create a form in your view file (upload_form.php) to allow users to select and upload files:

 <!-- upload_form.php -->
<?php echo form_open_multipart('upload/do_upload'); ?>
    <input type="file" name="userfile" size="20" />
    <br /><br />
    <input type="submit" value="Upload" />
<?php echo form_close(); ?>

3. Create Controller Method to Handle Upload:

Create a controller (Upload.php) and define a method to handle file uploads. In this method, perform file validation using CodeIgniter's form validation library and process the uploaded file using CodeIgniter's file upload library:

// Upload.php controller
class Upload extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->helper(array('form', 'url'));
        $this->load->library('form_validation');
    }

    public function index() {
        $this->load->view('upload_form');
    }

    public function do_upload() {
        $config['upload_path'] = './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('userfile')) {
            $error = array('error' => $this->upload->display_errors());
            $this->load->view('upload_form', $error);
        } else {
            $data = array('upload_data' => $this->upload->data());
            $this->load->view('upload_success', $data);
        }
    }
}
 

4. Add File Validation Rules:

Add file validation rules in the do_upload method using CodeIgniter's form validation library. You can add rules to check the file type, size, dimensions, etc.

$this->form_validation->set_rules('userfile', 'File', 'required');

if ($this->form_validation->run() == false) {
    $this->load->view('upload_form');
} else {
    // Process the uploaded file
}
 

5. Handle Upload Success:

Create a view (upload_success.php) to display success message or handle the uploaded file:

 <!-- upload_success.php -->
<h3>File uploaded successfully!</h3>
<ul>
    <?php foreach ($upload_data as $item => $value): ?>
        <li><?php echo $item; ?>: <?php echo $value; ?></li>
    <?php endforeach; ?>
</ul>
<p><?php echo anchor('upload', 'Upload Another File!'); ?></p>

6. Test Your File Upload:

Access the upload form through the browser and test file uploads.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

22024