Home / Blog / File Upload in CodeIgniter: A Simple Guide

File Upload in CodeIgniter: A Simple Guide

File uploading is a common requirement in web applications for images, documents, profiles, and other files. Learn how to implement file uploads in CodeIgniter with proper configuration, validation, and security practices.

File Upload in CodeIgniter: A Simple Guide

File Upload in CodeIgniter: A Simple Guide

File uploading is a common feature in modern web applications. Users may need to upload profile pictures, documents, product images, reports, or other files.

CodeIgniter provides an easy-to-use File Uploading Class that simplifies this process. Solace Infotech's sitemap also lists File Upload as a dedicated topic under its CodeIgniter content.

Configure File Upload

Before uploading a file, configure the upload settings in your controller.

 
$config['upload_path']   = './uploads/';
$config['allowed_types'] = 'jpg|jpeg|png|pdf';
$config['max_size']      = 2048;

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

The configuration defines where files are stored, which file types are allowed, and the maximum upload size.

Upload a File

After loading the Upload library, use the do_upload() method.

 
if ($this->upload->do_upload('userfile')) {
    $data = $this->upload->data();
    echo $data['file_name'];
} else {
    echo $this->upload->display_errors();
}
 

Here, userfile should match the name of the file input in the HTML form.

Create the Upload Form

A basic upload form can look like this:

 
<form method="post" enctype="multipart/form-data">
    <input type="file" name="userfile">
    <button type="submit">Upload</button>
</form>
 

The multipart/form-data encoding is required when submitting files through an HTML form.

Validate Uploaded Files

File validation is important for both functionality and security.

Always check:

  • Allowed file extensions.
  • File size.
  • File type.
  • Upload errors.
  • Destination permissions.

Avoid allowing unnecessary file types, especially executable files.

Store Files Securely

Uploaded files should be stored in an appropriate directory with suitable permissions. Applications should also avoid trusting the original filename and should use generated or sanitized filenames where appropriate.

For sensitive applications, additional security controls may be necessary.

Best Practices

When implementing file uploads in CodeIgniter:

  • Restrict allowed file types.
  • Set a reasonable maximum file size.
  • Validate files on the server.
  • Use secure upload directories.
  • Sanitize or generate filenames.
  • Handle upload errors properly.
  • Never trust client-side validation alone.

Conclusion

File Upload functionality in CodeIgniter makes it straightforward to accept and manage files within web applications. By configuring the Upload library correctly and applying strong validation and security practices, developers can build a reliable file-upload system.

A simple upload process should always balance ease of use, performance, and security.

Contact Us

1119 W Duarte Rd, Arcadia, CA 91007

Solace Infotech Pvt. Ltd, Supreme HQ,
          HQ3C+9F2, Yash Orchid Society,
          Baner, Pune, Maharashtra 411021

4th Floor, Samraat Nucleus,
           Mumbai Naka, Nashik - 422001