Create New Post

Uploading files in CodeIgniter

In CodeIgniter, you can handle file uploads easily using the built-in file upload library. Here's a step-by-step guide on how to upload files in CodeIgniter:

1. Configure File Upload Preferences:

Set up file upload preferences in application/config/config.php:

$config['upload_path'] = './uploads/'; // Specify the directory where uploaded files will be stored
$config['allowed_types'] = 'gif|jpg|png'; // Specify allowed file types
$config['max_size'] = 100; // Specify maximum file size in kilobytes
$config['max_width'] = 1024; // Specify maximum image width
$config['max_height'] = 768; // Specify maximum image height
 

2. Create Upload Directory:

Create a directory named "uploads" in your CodeIgniter project root directory. Ensure that it has appropriate permissions for file uploads.

3. Create a Form:

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

 <!-- upload_form.php -->
<form method="post" action="<?php echo base_url('upload/do_upload'); ?>" enctype="multipart/form-data">
    <input type="file" name="userfile" size="20" />
    <br /><br />
    <input type="submit" value="Upload" />
</form>

4. Create Controller Method to Handle Upload:

Create a controller (Upload.php) and define a method to handle file uploads:

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

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

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

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 *

31790