How to upload an image using CodeIgniter 3

In CodeIgniter 3, you can easily implement image uploads by using the built-in File Uploading Class. Here's a step-by-step guide on how to upload an image:

Step 1: Configure File Upload Settings

Make sure you have configured the necessary settings for file uploads in your CodeIgniter config.php file located at application/config/config.php. Ensure that the upload_path and other related settings are correctly set.

$config['upload_path'] = './uploads/'; // Your upload directory path
$config['allowed_types'] = 'gif|jpg|jpeg|png'; // Allowed file types
$config['max_size'] = 2048; // Maximum file size in kilobytes
$config['encrypt_name'] = TRUE; // Generate a unique filename for the uploaded file

Step 2: Create an Upload Form

Create a form in your view to allow users to select and submit an image file.

<form action="<?= base_url('your_controller/upload_image');?>" method="post" enctype="multipart/form-data">
    <input type="file" name="userfile">
    <input type="submit" value="Upload Image">
</form>

Step 3: Create a Controller Method

In your controller, create a method (e.g., upload_image) to handle the image upload.

<?php
class Your_Controller extends CI_Controller {
    public function __construct() {
        parent::__construct();
        $this->load->helper('url'); // Load the URL helper for base_url()
    }

    public function upload_image() {
        $config['upload_path'] = './uploads/'; // You can override the upload path here if needed
        $config['allowed_types'] = 'gif|jpg|jpeg|png';

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

        if (!$this->upload->do_upload('userfile')) {
            // Image upload failed
            $error = array('error' => $this->upload->display_errors());
            $this->load->view('upload_form', $error);
        } else {
            // Image uploaded successfully
            $data = array('upload_data' => $this->upload->data());
            $this->load->view('upload_success', $data);
        }
    }
}

Make sure to customize the upload_path and allowed_types values as needed.

Step 4: Create View Files

Create two view files, upload_form.php and upload_success.php, to display the upload form and success message.

upload_form.php (for displaying the upload form):

<html>
<body>
    <?php echo $error; // Display any upload error message ?>
    <form action="<?= base_url('your_controller/upload_image');?>" method="post" enctype="multipart/form-data">
        <input type="file" name="userfile">
        <input type="submit" value="Upload Image">
    </form>
</body>
</html>

upload_success.php (for displaying the success message):

<html>
<body>
    <h3>Image uploaded successfully!</h3>
    <ul>
        <?php foreach ($upload_data as $item => $value): ?>
            <li><?= $item;?>: <?= $value;?></li>
        <?php endforeach; ?>
    </ul>
</body>
</html>

Step 5: Test the Image Upload

Visit the URL that corresponds to your upload form (e.g., http://yourdomain.com/your_controller/upload_image) and test the image upload functionality.

This is a basic example of how to upload an image using CodeIgniter 3. Remember to customize the file upload settings and paths to suit your specific needs. Additionally, make sure the uploads directory is writable by the web server.

Muhammad Alfaiz
Alfaiz 3 months ago
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x