Validación de carga de archivos CodeIgniter

CodeIgniter proporciona una clase de validación de formulario que ayuda a validar campos de formulario escribiendo el código mínimo. Generalmente, se utiliza la requiredregla en CodeIgniter para validar un campo de formulario requerido. Pero la requiredregla no funciona cuando intentaste validar un campo de carga de archivos en CodeIgniter. En este tutorial de CodeIgniter, le mostraremos cómo agregar validación a la carga de archivos en CodeIgniter .
Para una mejor comprensión, demostraremos el proceso completo de carga de archivos con la validación de carga de archivos . Usando nuestro código de ejemplo, puede implementar la funcionalidad de carga de archivos o imágenes con la validación del campo de entrada de archivos en CodeIgniter .
Antes de comenzar a implementar la validación de carga de archivos CodeIgniter, eche un vistazo a la estructura de carpetas y archivos simples de este script de ejemplo.
codeigniter-file-upload-validation-files-structure-codexworld

Subir directorio

Es necesario crear un directorio para almacenar los archivos cargados. Por ejemplo, este script carga archivos en el uploads/files/directorio.

Controlador (Files.php)

El controlador de Archivos contiene 2 funciones, upload()file_check().
La upload()función maneja la siguiente funcionalidad.
  • Carga el formulario de carga de archivos.
  • Valida el campo de entrada del archivo para verificar si está vacío o si el tipo de archivo no es compatible.
  • Carga el archivo enviado al servidor.
La siguiente biblioteca y ayudante de CodeIgniter incorporados se utilizan para cargar archivos con validación en CodeIgniter.
  • form_validation - ayuda a validar campos de formulario.
  • archivo : proporciona una get_mime_by_extension()función para obtener el tipo mime del archivo cargado.
  • subir : ayuda a cargar el archivo en el servidor.
El file_check()es una función de devolución de llamada de validación que comprueba si el campo de entrada de archivo está vacío o no se permite archivo seleccionado.
<? php  if (!  defined ( 'BASEPATH' )) exit ( 'No se permite el acceso directo al script' ); / ** 
 * La clase de administración de archivos creada por CodexWorld 
 * / class  Files  extiende  CI_Controller  { 
    
    function  __construct () { 
        parent :: __construct (); 
    } 
    
    función pública  upload () { 
        $ data  = array (); 
        
        // cargar la biblioteca de validación de formularios 
        $ this -> load -> library ( 'form_validation' ); 
        
        // cargar el archivo de ayuda
        $ this -> load -> helper ( 'file' ); 
        
        if ( $ this -> input -> post ( 'uploadFile' )) { 
            $ this -> form_validation -> set_rules ( 'file' '' 'callback_file_check' ); 

            if ( $ this -> form_validation -> run () ==  true ) { 
                // cargar configuración 
                $ config [ 'upload_path' ] =  ' uploads / files /'
                $ config [ 'allowed_types' ] =  'gif | jpg | png | pdf' ; 
                $ config [ 'max_size' ] =  1024 ; 
                $ this -> load -> library ( 'upload' $ config ); 
                // subir el archivo al directorio 
                si ( $ this -> upload -> do_upload ( 'file' )) { 
                    $ uploadData  $ this -> upload -> data (); 
                    $ uploadedFile  $ uploadData [ ' file_name '
                    
                    / * 
                     * insertar información del archivo en la base de datos 
                     * ....... 
                     * / 
                    
                    $ data [ 'success_msg' ] =  'El archivo se ha cargado correctamente.' ; 
                } else { 
                    $ data [ 'error_msg' ] =  $ this -> upload -> display_errors (); 
                } 
            } 
        } 
        
        // carga la vista 
        $ this -> load -> view ( 'files / upload' $ data ); 
    } 
    
    / *
     * valor de archivo y verificación de tipo durante la validación 
     * / 
    función pública  file_check ( $ str ) { 
        $ allowed_mime_type_arr  = array ( 'application / pdf' , 'image / gif' , 'image / jpeg' , 'image / pjpeg' , 'image / png ' , ' imagen / x-png ' ); 
        $ mime  get_mime_by_extension ( $ _FILES [ 'file' ] [ 'name' ]); 
        if (isset ( $ _FILES [ 'file' ] [ 'name' ]) && ] [ 'nombre' ]! = "" ) { 
            if ( in_array ( $ mime $ allowed_mime_type_arr )) { 
                return  true ; 
            } else { 
                $ this -> form_validation -> set_message ( 'file_check' 'Por favor seleccione solo el archivo pdf / gif / jpg / png.' ); 
                volver  falsa ; 
            } 
        } else else { 
            $ this -> form_validation -> set_message ( 'file_check' 'Por favor, elija un archivo para subir.' ); 
            volver  falsa ; 
        } 
    } 
}

Ver (archivos / upload.php)

Este archivo de vista contiene un formulario de carga HTML que permite al usuario seleccionar un archivo para cargar. El formulario se envía al upload()método de Controlador de archivos para su validación y carga.
<? php  
    if (! empty ( $ success_msg )) { 
        echo  '<p class = "statusMsg">' . $ success_msg . '</p>' ; 
    } elseif (! empty ( $ error_msg )) { 
        echo  '<p class = "statusMsg">' . $ error_msg . '</p>' ; 
    } ?>

< form  method = "post"  enctype = "multipart / form-data" >
    < p > < input  type = "file"  name = "file" /> </ p >
     <? php  echo  form_error ( 'file' , '<p class = "help-block">' , '</p>' ); ?> 
    < p > < input  type = "submit"  name = "uploadFile"  value = "UPLOAD" /> </ p >
</ form >

Conclusión

Aquí hemos explicado cómo puede validar un campo de entrada de archivo en CodeIgniter. Además, el proceso de carga de archivos CodeIgniter se muestra en este tutorial. En nuestra secuencia de comandos de ejemplo, solo se pueden cargar archivos GIF, PNG, JPG y PDF, pero puede cambiar los tipos de archivos permitidos según sus requisitos. Si desea cargar varios archivos en CodeIgniter, el siguiente tutorial le ayudará a implementar esta funcionalidad fácilmente.

Acerca de: Programator

Somos Instinto Programador

0 comentarios:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Con tecnología de Blogger.