CodeIgniter - Carga de archivos

Usando la clase File Uploading, podemos cargar archivos y también podemos restringir el tipo y tamaño del archivo que se cargará. Siga los pasos que se muestran en el ejemplo dado para comprender el proceso de carga de archivos en CodeIgniter.

Ejemplo

Copie el siguiente código y guárdelo en application/view/Upload_form.php.

<html>
 
   <head> 
      <title>Upload Form</title> 
   </head>
	
   <body> 
      <?php echo $error;?> 
      <?php echo form_open_multipart('upload/do_upload');?> 
		
      <form action = "" method = "">
         <input type = "file" name = "userfile" size = "20" /> 
         <br /><br /> 
         <input type = "submit" value = "upload" /> 
      </form> 
		
   </body>
	
</html>

Copie el código que se proporciona a continuación y guárdelo en application/view/Upload_success.php

<html>
 
   <head> 
      <title>Upload Form</title> 
   </head>
	
   <body>  
      <h3>Your file was successfully uploaded!</h3>  
		
      <ul> 
         <?phpforeach ($upload_data as $item => $value):?> 
         <li><?php echo $item;?>: <?php echo $value;?></li> 
         <?phpendforeach; ?>
      </ul>  
		
      <p><?php echo anchor('upload', 'Upload Another File!'); ?></p>  
   </body>
	
</html>

Copie el código que se proporciona a continuación y guárdelo en application/controllers/Upload.php. Crear "uploads”En la raíz de CodeIgniter, es decir, en el directorio principal de la carpeta de la aplicación.

<?php
  
   class Upload extends CI_Controller {
	
      public function __construct() { 
         parent::__construct(); 
         $this->load->helper(array('form', 'url')); 
      }
		
      public function index() { 
         $this->load->view('upload_form', 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('userfile')) {
            $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); 
         } 
      } 
   } 
?>

Realice el siguiente cambio en el archivo de ruta en application/config/routes.php y agregue la siguiente línea al final del archivo.

$route['upload'] = 'Upload';

Ahora ejecutemos este ejemplo visitando la siguiente URL en el navegador. Reemplace el yoursite.com con su URL.

http://yoursite.com/index.php/upload

Producirá la siguiente pantalla:

Después de cargar con éxito un archivo, verá la siguiente pantalla: