Tutorials

Article Content:Multiple file upload in Codeigniter with example

Multiple file upload in Codeigniter with example

Codeigniter doesn't have a support for upload multiple files at once; they saw it was out of framework philosophy, and because we don’t have the time to argue about this, we just make it by hands.

Html5 and jQuery give you the ability to upload multiple files, not just that, also to make it easy for user to control uploading files extensions by validating before upload.

Note: you must make your server validation to be sure because client validation is not enough.

In this tutorial we will learn how to do this :

  1- Using another improved Codeigniter file upload library

We should inherit and hack Codeigniter file upload library to give it the ability to upload multiple files with single input, although we can do this task without any other library but for code clean and to avoid repetitions I recommended to use this library

 

This library doesn't change anything to write your code, so if you have already build your project with regular codeigniter file upload library you will not have to change the original uploading code, this library will detect single or multi upload, your turn to handle inserting files information to your table;

    2-Using jQuery MultiFile Plugin

This light Wight jQuery Plugin helps you to easily select multiple files for upload. It lets you do some basic validations before files uploaded, based on their extension or size, I use it to make simple Codeigniter upload file example without any complex features

To select multiple files at once you should define some attributes, other optional Use HTML5's multiple attribute 

class="multi" to active the plugin and class="with-preview"  

maxlength="10" Limit: 10 files 

accept="gif|jpg|png Allowed extensions: gif, jpg, png.

data-maxfile="1024" Allowed files  sizes (under <1MB each) or  data-maxfile="1024" Allowed files  sizes (under <1MB in total)

type="file" to define input type

<input
  multiple
  class="multi with-preview"
  maxlength="10"
  accept="gif|jpg|png" 
  data-maxfile="1024"
/>

name="files[]" .. Important if you want to make it multi upload input to add [], these will define input as multidimensional array as example to see array like this

Array
(
    [0] => Array
        (
            [name] => foo.txt
            [type] => text/plain
            [tmp_name] => /tmp/phpYzdqkD
            [error] => 0
            [size] => 123
        )

    [1] => Array
        (
            [name] => bar.txt
            [type] => text/plain
            [tmp_name] => /tmp/phpeEwEWG
            [error] => 0
            [size] => 456
        )
)

enctype="multipart/form-data" ..  It is an encoding type that allows files to be sent through a POST. And without this encoding the files cannot be sent through POST.

If you want to upload a file via a form, you must use this attribute in the form.For full documentation you can see this page

 

Project files

1-       Plugin files in Global/ Multifile path

2-      Library  file path  libraries/My_upload.php 

 

 Download Full Code



Leave a Reply

Your email address will not be published.


Notify me of followup comments via e-mail.
You can also Subscribe without commenting.