Breaking

Post Top Ad

Your Ad Spot

domingo, 10 de marzo de 2019

Descargar el archivo de la base de datos en CodeIgniter

CodeIgniter proporciona algunos ayudantes incorporados para facilitar la implementación de algunas funciones útiles en la aplicación web. Download Helper es uno de ellos que le permite integrar la función de descarga de archivos rápidamente en CodeIgniter. En este tutorial de CodeIgniter, le mostraremos con qué facilidad puede descargar archivos o imágenes de la base de datos utilizando Download Helper.
El Asistente de descarga tiene una force_download()función que genera encabezados de servidor que obligan a descargar datos a su computadora. Puede descargar el archivo existente desde el servidor usando la force_download()función. La force_download()función acepta 3 parámetros: $filename(cadena), $data(mixto) y $set_mime(bool). Para descargar el archivo existente, necesitará usar la force_download()función como la siguiente.
force_download ( '/path/to/photo.jpg' NULL );
Aquí proporcionaremos un script de ejemplo para descargar archivos o imágenes de la base de datos en la aplicación CodeIgniter . Las siguientes funcionalidades serán implementadas en este script.
  • Todos los archivos se listarán de la base de datos que ya existe en la carpeta de carga ( uploads/files/).
  • Los archivos serán listados con vista previa y un enlace de descarga.
  • Al hacer clic en el enlace "Descargar", las descargas de archivos correspondientes del directorio.

Directorio de carga de archivos

Cree un directorio donde desee almacenar los archivos cargados. Los archivos cargados se almacenan en el uploads/filesdirectorio de la raíz de la aplicación.

Creación de tablas de base de datos

Para almacenar la información de los archivos se necesita una tabla en la base de datos MySQL. El siguiente SQL crea una filestabla con algunos campos básicos obligatorios.
CREATE  TABLE ` ficheros '(
  ` id`  int ( 11 ) NOT NULL AUTO_INCREMENT,
  `title`  varchar ( 255 ) compilar utf8_unicode_ci NOT NULL ,
  ` file_name`  varchar ( 255 ) Intercalar utf8_unicode_ci NOT NULL ,
  `created` datetime NOT NULL ,
  ` modificado ` datetime NOT NULL ,
  ` status` enum ( '1' , '0' ) COLLATE utf8_unicode_ci NOT NULL DEFAULT'1' ,
  TECLA PRIMARIA ( `id` )
) MOTOR = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;

Controlador (Files.php)

Controlador de archivos maneja la lista de archivos y la funcionalidad de descarga. Contiene tres funciones __construct()index()download()
__construct()- El modelo de archivo se carga para recuperar datos de archivos de la base de datos. 
index()- Los datos del archivo se obtienen de la base de datos utilizando el modelo de archivo y se pasan a la vista. 
download()- El archivo solicitado se descarga de acuerdo con la ID provista desde el directorio. 
En la download()función, la información del archivo se obtiene de la base de datos y force_download()se usa para descargar el archivo respectivo del directorio.
<? 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 (); 
        $ this -> load -> model ( 'file' ); 
    } 
    
índice de     función pública  () { 
        $ data  = array (); 
        
        // obtener archivos de la base de datos 
        $ datos [ 'archivos'] =  $ this -> file -> getRows (); 
        
        // carga la vista 
        $ this -> load -> view ( 'files / index' $ data ); 
    } 
    
descarga de     función pública  ( $ id ) { 
        if (! empty ( $ id )) { 
            // load download helper 
            $ this -> load -> helper ( 'download' ); 
            
            // obtener información del archivo de la base de datos 
            $ fileInfo  $ this -> file -> getRows (array ('id'  =>  $ id )); 
            
            // ruta del archivo 
            $ file  'uploads / files /' . $ fileInfo [ ' file_name ' ]; 
            
            // descargar el archivo del directorio 
            force_download ( $ file NULL ); 
        } 
    } 
}

Modelo (File.php)

El modelo de archivo maneja todos los trabajos relacionados con la base de datos y contiene una función getRows()La getRows()función obtiene registros de la filestabla y devuelve los datos solicitados.
<? php  if (!  defined ( 'BASEPATH' )) exit ( 'No se permite el acceso directo al script' ); 
el archivo de la  clase  extiende el  modelo de CI { 
    / * 
     * obtiene filas de la tabla de archivos 
     * / 
    function  getRows ( $ params  = array ()) { 
        $ this -> db -> select ( '*' ); 
        $ this -> db -> from ( 'archivos' ); 
        $ this -> db -> where ( 'status' ,); 
        $ this -> db -> order_by ( 'created' , 'desc' ); 
        if ( array_key_exists ( 'id' , $ params ) &&! empty ( $ params [ 'id' )) { 
            $ this -> db -> where ( 'id' , $ params [ 'id' ]); 
            // obtener registros 
            $ consulta  $ esto -> db -> get (); 
            $ resultado  = ( $ consulta ->0 )? $ query -> row_array (): FALSE ; 
        } else { 
            // establece el inicio y el límite 
            si ( array_key_exists ( "start" , $ params ) &&  array_key_exists ( "limit" , $ params )) { 
                $ this -> db -> limit ( $ params [ 'limit' ], $ params [ 'inicio' ]); 
            } elseif (! array_key_exists ( "start" , $ params ) && ( "límite" , $ params )) { 
                $ this -> db -> limit ( $ params [ 'limit' ]); 
            } 
            // obtener registros 
            $ consulta  $ esto -> db -> get (); 
            $ resultado  = ( $ consulta -> num_rows ()>  0 )? $ consulta -> result_array (): FALSE ; 
        } 
        // devolver los datos recuperados 
        devolver  $ resultado ; 
    } 

}

Ver (archivos / index.php)

Esta vista se carga mediante el index()método del controlador de archivos. Todos los archivos se enumeran con título, vista previa y enlace de descarga. Cuando el usuario hace clic en el enlace de descarga, el archivo correspondiente se descarga mediante el download()método del Filescontrolador.
<? php  if (! empty ( $ files )) {foreach ( $ files  as  $ frow ) {  ?> 
< div  class = "file-box" >
    < div  class = "box-content" >
        < h5 > <? php  echo  $ frow [ 'title' ]; ?> </ h5 >
        < div  class = "preview" >
            < embed  src = " <? php  echo  base_url (). ' uploads / files /' . $ frow [ 'file_name' ];  ?> " >
        </ div >
        < Un  href = " <? Php  echo  base_url . () '/ Descargar archivos /' . $ FROW [ 'id' ];  ?> "  Clase = "dwn" > Descargar </ a >
    </ div >
</ div >
 <? php  }}  ?>
Los archivos se enumeran de la base de datos como el siguiente.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas