About Lesson
CodeIgniter makes working with files uploaded through a form much simpler and more secure than using PHP’s $_FILES array directly. This extends the File class and thus gains all of the features of that class. It provides a raw interface to the uploaded files with a few small features.
$this->load->library('upload');
The library is used to upload a file.
1. Create a controller file Upload.php in the applications/controllers/ directory.
class Upload extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper(array('form', 'url')); } public function index() { $this->load->view('upload', 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('file')) { $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); } } }
2. Create an upload.php file in the applications/views/ directory.
<html> <head> <title>Upload File</title> </head> <body> <?php echo $error;?> <?php echo form_open_multipart( 'upload/do_upload');?> <input type="file" name="file" size="20" /> <br /> <br /> <input type="submit" value="upload" /> <?php echo form_close(); ?> </body> </html>
3. Create a upload_success.php file in the applications/views/ directory.
<html> <head> <title>Upload Form</title> </head> <body> <h3>Your file was successfully uploaded!</h3> <ul> <?php foreach ($upload_data as $item=>$value):?> <li> <?php echo $item;?>: <?php echo $value;?> </li> <?php endforeach; ?> </ul> </body> </html>