File Uploading

📘 CodeIgniter 👁 30 views 📅 Dec 22, 2025
⏱ Estimated reading time: 2 min

File Uploading in CodeIgniter (CodeIgniter 4)

CodeIgniter 4 provides a secure and flexible file upload system with built-in validation and file handling features.


1. Requirements for File Upload

  • Form method must be POST

  • Form enctype must be multipart/form-data


2. Upload Form (View)

<!-- app/Views/upload.php --> <?= form_open_multipart('upload/save') ?> <input type="file" name="image"> <button type="submit">Upload</button> <?= form_close() ?>

3. Upload Controller

class Upload extends BaseController { public function save() { $file = $this->request->getFile('image'); if (! $file->isValid()) { return redirect()->back()->with('error', 'Invalid file'); } $file->move(WRITEPATH . 'uploads'); return "File uploaded successfully"; } }

4. File Upload Validation

$rules = [ 'image' => [ 'rules' => 'uploaded[image]|max_size[image,1024]|is_image[image]', 'errors' => [ 'uploaded' => 'Please choose a file', 'max_size' => 'File size must be less than 1MB', 'is_image' => 'Only images are allowed' ] ] ]; if (! $this->validate($rules)) { return redirect()->back()->withInput(); }

5. Upload with Custom File Name

$newName = $file->getRandomName(); $file->move(WRITEPATH . 'uploads', $newName);

6. Upload to Public Folder

$file->move(FCPATH . 'uploads');

Access:

http://localhost/uploads/filename.jpg

7. Multiple File Upload

View

<input type="file" name="images[]" multiple>

Controller

$files = $this->request->getFiles(); foreach ($files['images'] as $file) { if ($file->isValid()) { $file->move(WRITEPATH . 'uploads'); } }

8. Allowed File Types

$rules = [ 'file' => 'uploaded[file]|ext_in[file,pdf,doc,docx]' ];

9. Get File Info

$file->getName(); // Original name $file->getClientMimeType(); $file->getSize();

10. Delete Uploaded File

unlink(WRITEPATH . 'uploads/' . $filename);

11. Security Best Practices

✅ Validate file type & size
✅ Use random file names
✅ Store uploads outside public if possible
❌ Never trust file extension alone


Summary

  • CodeIgniter supports secure file uploads

  • Built-in validation rules

  • Supports single & multiple uploads

  • Easy integration with forms & controllers


🔒 Some advanced sections are available for Registered Members
Register Now

Share this Post


← Back to Tutorials

Popular Competitive Exam Quizzes