Breaking

Post Top Ad

Your Ad Spot

domingo, 10 de marzo de 2019

Cargar múltiples archivos e imágenes en CodeIgniter

La carga de archivos es la característica más utilizada en la aplicación web. El archivo se puede cargar fácilmente al servidor usando PHP. Además, puedes subir varios archivos usando PHP . Para la aplicación web CodeIgniter, puede usar la biblioteca del sistema para implementar la funcionalidad de carga de archivos. Le ayudará a cargar el archivo al servidor en CodeIgniter.
La clase de carga de archivos de CodeIgniter permite cargar archivos en el servidor. Puede cargar un archivo o una imagen fácilmente usando Cargar biblioteca en CodeIgniter. No solo un solo archivo, sino también los múltiples archivos se pueden cargar con la biblioteca de carga de CodeIgniter . En este tutorial, le mostraremos cómo cargar varios archivos e imágenes a la vez utilizando la Biblioteca de Subidas de CodeIgniter.
En el código de ejemplo, se implementará la siguiente funcionalidad para demostrar la carga de múltiples archivos en CodeIgniter .
  • Crea un formulario HTML para seleccionar varias imágenes a la vez.
  • Sube imágenes al servidor usando la biblioteca de Subir de CodeIgniter.
  • Almacena los datos del archivo en la base de datos MySQL.
  • Recupere imágenes de la base de datos y visualice en la página web.

Crear tabla de base de datos

Para almacenar el nombre del archivo y la información relacionada, se debe crear una tabla en la base de datos. El siguiente SQL crea una filestabla en la base de datos MySQL.
CREAR  TABLA ` ficheros ` (
  `id`  int ( 11 ) NOT NULL AUTO_INCREMENT,
  ` file_name`  varchar ( 255 ) compilar utf8_unicode_ci NOT NULL ,
  `uploaded_on` datetime NOT NULL ,
  'Estado` enum ( '1' , '0' ) INTERCALAR utf8_unicode_ci NO NULO POR DEFECTO '1' COMENTARIO '1 = Activo, 0 = Inactivo' ,
  TECLA PRINCIPAL ( `id` )
) MOTOR = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;

Crear carpeta de carga de archivos

Cree un directorio en el servidor donde desea almacenar los archivos cargados. Por ejemplo, cree un uploads/files/directorio en la carpeta raíz de la aplicación.
codeigniter-multiple-files-upload-tutorial-create-upload-folder-codexworld

Controlador (Upload_files.php)

El controlador Upload_Files contiene 2 funciones, __construct () e index ().
  • __construct() -
    • Carga la biblioteca SESSION para mostrar el estado de carga al usuario.
    • Carga el modelo de archivo que ayuda a insertar datos de archivos en la base de datos y obtener datos de archivos de la base de datos.
  • index() - Esta función maneja la funcionalidad de carga de múltiples archivos.
    • Establecer preferencias (ruta de carga, tipos permitidos, etc.) e inicializar la biblioteca de carga.
    • Sube imágenes al servidor usando Subir biblioteca.
    • Insertar datos de imágenes en la base de datos utilizando el modelo de archivo.
    • Obtener todos los datos de imágenes de la base de datos.
    • Pasa los datos a la vista.
<? php defined ( 'BASEPATH' ) O exit ( 'No se permite el acceso directo al script' ); 

la clase  Upload_Files  extiende  CI_Controller  { 
    function   __construct () { 
        parent :: __construct (); 
        // Cargar biblioteca de sesión 
        $ this -> load -> library ( 'session' ); 
        
        // Cargar archivo modelo 
        $ esto -> cargar -> modelo ( 'archivo' ); 
    } 
    
índice de     función  () { 
        $ data  = array ();
        // Si se envió el formulario de carga de archivos 
        si ( $ this -> input -> post ( 'fileSubmit' ) &&! Empty ( $ _FILES [ 'files' ] [ 'name' ])) { 
            $ filesCount  count ( $ _FILES [ ' archivos ' ] [ ' nombre ' ]); 
            para ( $ i  0 $ i  $ filesCount $ i ++) { 
                $ _FILES [ 'file' ] [ 'name' ] =  $ _FILES [ ''nombre' ] [ $ i ]; 
                $ _FILES [ 'archivo' ] [ 'tipo' ] =  $ _FILES [ 'archivos' ] [ 'tipo' ] [ $ i ]; 
                $ _FILES [ 'file' ] [ 'tmp_name' ] =  $ _FILES [ 'files' ] [ 'tmp_name' ] [ $ i ]; 
                $ _FILES [ 'archivo' ] [ 'error' ] =  $ _FILES [ 'archivos' ] [ 'error' ] [ $ i ];
                ] [ 'tamaño' ] =  $ _FILES [ 'archivos' ] [ 'tamaño' ] [ $ i ]; 
                
                // Configuración de carga de archivos 
                $ uploadPath ' uploads  / files /' ; 
                $ config [ 'upload_path' ] =  $ uploadPath ; 
                $ config [ 'allowed_types' ] =  'jpg | jpeg | png | gif' ; 
                
                // Cargar e inicializar la carga de la biblioteca 
                $ this -> load -> library ( 'upload' $ config ); 
                $ esto -> subir ->inicializar ( $ config ); 
                
                // Subir archivo al servidor 
                si ( $ this -> upload -> do_upload ( 'file' )) { 
                    // Datos de archivo cargados 
                    $ fileData  $ this -> upload -> data (); 
                    $ uploadData [ $ i ] [ 'file_name' ] =  $ fileData [ ' file_name ' ]; 
                    $ uploadData [ $ i ] [ 'uploaded_on' ] =  fecha ( "Ymd H: i: s" ); 
                } 
            }
            
            if (! empty ( $ uploadData )) { 
                // Insertar datos de archivos en la base 
                de datos $ insert  $ this -> file -> insert ( $ uploadData ); 
                
                // Subir mensaje de estado 
                $ statusMsg  $ insertar ? 'Archivos subidos con éxito.' : 'Ha ocurrido algún problema, por favor inténtalo de nuevo'. ; 
                $ this -> session -> set_flashdata ( 'statusMsg' , $ statusMsg ); 
            } 
        } 
        
        // Obtener datos de archivos de la base 
        de datos $ datos ['archivos' ] =  $ this -> file -> getRows (); 
        
        // Pase los datos de los archivos para ver 
        $ this -> load -> view ( 'upload_files / index' $ data ); 
    } 

}

Modelo (File.php)

El modelo de archivo contiene 3 funciones, __construct (), getRows () e insert ().
  • __construct() - Definir el nombre de la tabla donde se almacenarán los datos de los archivos.
  • getRows()- Obtener los datos del archivo de la filestabla de la base de datos. Devuelve un solo registro si se especifica ID, de lo contrario todos los registros.
  • insert() - Inserte datos de múltiples archivos en la base de datos usando la función insert_batch () de la clase Query Builder.
<? php  if (!  defined ( 'BASEPATH' )) exit ( 'No se permite el acceso directo al script' ); 
el archivo de  clase  extiende el  modelo_CI_ { 
    función  __construct () { 
        $ this -> tableName  'files' ; 
    } 
    
    / * 
     * Obtener datos de archivos de la base de datos 
     * @param id devuelve un solo registro si se especifica, de lo contrario, todos los registros 
     * / 
    función pública  getRows ( $ id  '' ) { 
        $ this -> db -> select ('id, file_name, uploaded_on' ); 
        $ this -> db -> from ( 'archivos' ); 
        if ( $ id ) { 
            $ this -> db -> where ( 'id' , $ id ); 
            $ consulta  $ esto -> db -> get (); 
            $ result  $ query -> row_array (); 
        } else { 
            $ this -> db -> order_by ( 'uploaded_on' , 'desc' ); 
            $ consulta $ esto -> db -> get (); 
            $ result  $ query -> result_array (); 
        } 
        volver! vacio ( $ resultado )? $ resultado : falso ; 
    } 
    
    / * 
     * Insertar datos de archivo en la base de datos 
     * @param array los datos para insertar en la tabla 
     * / 
    public function  insert ( $ data  = array ()) { 
        $ insert  $ this -> db -> insert_batch ( 'archivos' , $ datos); 
        volver  $ insertar ? verdadero : falso ; 
    } 
    
}

Ver (upload_files / index.php)

Inicialmente, se muestra un formulario HTML con entrada de archivo para seleccionar varios archivos. Después del envío del formulario, los datos se publican en la función index () del controlador Upload_Files para cargar varias imágenes en el servidor.
<! - muestra el mensaje de estado -> 
< p > <? php  echo  $ this -> session -> flashdata ( 'statusMsg' ); ?> </ p >

<! - formulario de carga de archivos -> 
< form  method = "post"  action = ""  enctype = "multipart / form-data" >
    < div  class = "form-group" >
        < etiqueta > Elegir archivos </ etiqueta >
        < input  type = "file"  name = "files []"  multiple />
    </ div >
    < div  class = "form-group" >
        < input  type = "submit"  name = "fileSubmit"  value = "UPLOAD" />
    </ div >
</ form >
En el formulario de carga de archivos, los nombres de las imágenes cargadas se recuperan de la base de datos y muestran las imágenes respectivas del servidor en una vista de galería.
<! - muestra las imágenes subidas -> 
< div  class = "row" >
    < ul  class = "gallery" >
         <? php  if (!! ( $ files )) {foreach ( $ files  as  $ file ) {  ?> 
        < li  class = "item" >
            < img  src = " <? php  echo  base_url ( ' uploads / files /' . $ file [ 'file_name' ]);  ?> " >
            < p > Subido en <? php  echo  date ( "j M Y" , strtotime ( $ archivo [ 'uploaded_on' ])); ?> </ p >
        </ li >
         <? php  }} else else {  ?> 
        < p > Imagen (s) no encontrada ..... </ p >
         <? php  ?> 
    </ ul >
</ div >

Subir preferencias de clase

En el ejemplo, algunas preferencias básicas se utilizan para Cargar configuración de biblioteca ( $config). Pero puede especificar varias preferencias proporcionadas por la Clase de carga en CodeIgniter .
  • upload_path : la ruta del directorio donde se cargará el archivo. La ruta debe ser absoluta y el directorio debe ser escribible.
  • allowed_types : los tipos mime del archivo que permite cargarse.
  • nombre_archivo : si se especifica, el nombre del archivo cargado se cambiará con este nombre.
  • file_ext_tolower - (TRUE / FALSE) Si se establece en TRUE, la extensión del archivo será en minúsculas.
  • sobrescribir - (VERDADERO / FALSO) VERDADERO - Si existe un archivo con el mismo nombre, se sobrescribirá. FALSO: si existe un archivo con el mismo nombre, se agregará un número al nombre del archivo.
  • max_size - (en kilobytes) El tamaño máximo del archivo que permitió subir. Se establece en 0 para ningún límite.
  • max_width - (en píxeles) El ancho máximo de la imagen que permitió subir. Se establece en 0 para ningún límite.
  • max_height - (en píxeles) La altura máxima de la imagen que permitió subir. Se establece en 0 para ningún límite.
  • min_width - (en píxeles) El ancho mínimo de la imagen que permitió subir. Se establece en 0 para ningún límite.
  • min_height - (en píxeles) La altura mínima de la imagen que permitió subir. Se establece en 0 para ningún límite.
  • max_filename : la longitud máxima del nombre de archivo. Se establece en 0 para ningún límite.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas