Post Top Ad

Your Ad Spot

domingo, 19 de abril de 2020

Laravel File Upload

En este tema, veremos cómo cargar los archivos.
Comprendamos a través de un ejemplo.
  • Primero, creamos el proyecto en laravel 5.8 usando el comando dado a continuación:
compositor create-project laravel / laravel = 5.8 form -prefer-dist;
Laravel File Upload
  • Ahora, creamos un modelo llamado ' Formulario '.
Laravel File Upload
  • Abra el archivo de migración ( create_forms_table ).
  1. <? php  
  2. use Illuminate \ Support \ Facades \ Schema;  
  3. use Illuminate \ Database \ Schema \ Blueprint;  
  4. use Illuminate \ Database \ Migrations \ Migration;  
  5. La clase  CreateFormsTable  extiende la  migración  
  6. {  
  7.     / ** 
  8.      * Ejecuta las migraciones. 
  9.      * * 
  10.      * @return void 
  11.      * /  
  12.      función pública up ()  
  13.     {  
  14.         Schema :: create ( 'form' , function (Blueprint $ table) {  
  15.             $ tabla-> bigIncrements ( 'id' );  
  16.             $ tabla-> cadena ( 'ruta' );  
  17.             $ tabla-> marcas de tiempo ();  
  18.         });  
  19.     }  
  20.   
  21.     / ** 
  22.      * Revertir las migraciones. 
  23.      * * 
  24.      * @return void 
  25.      * /  
  26.      función pública abajo ()  
  27.     {  
  28.         Esquema :: dropIfExists ( 'formularios' );  
  29.     }  
  30. }  
El código anterior crea una tabla llamada ' formularios ', que contiene cuatro columnas (id, ruta, created_at, updated_at).
  • Migre los cambios anteriores en una base de datos utilizando el comando que se proporciona a continuación:
Laravel File Upload
  • Creamos un controlador llamado ' FormController '.
Laravel File Upload
  • Ahora creamos una página de vista llamada form.blade.php .
form.blade.php
  1. HTML >  
  2. Cabeza >  
  3. título  Carga de archivos  </ título >  
  4. </ Head >  
  5. Cuerpo >  
  6. form method "Post" action "{{route ('forms.store')}}" enctype "multipart / form-data" >     
  7. @csrf  
  8. Div entrada de tipo "archivo" nombre "imagen" </ div br />     
  9. div button type "submit" Cargar  </ button </ div >   
  10.   
  11. </ form >  
  12. </ cuerpo >  

Almacenar el archivo en una base de datos

En esto, definiremos la función store () en la que agregaremos el código de guardar el archivo en una base de datos.
FormController.php
  1. <? php  
  2. aplicación de espacio de nombres \ Http \ Controllers;  
  3. use Illuminate \ Http \ Request;  
  4. use App \ Form;  
  5. clase  FormController  extiende  controlador  
  6. {  
  7.     / ** 
  8.      * Mostrar una lista del recurso. 
  9.      * * 
  10.      * @return \ Illuminate \ Http \ Response 
  11.      * /  
  12.      índice de función pública ()  
  13.     {  
  14.         //  
  15.     }  
  16. / ** 
  17.      * Mostrar el formulario para crear un nuevo recurso. 
  18.      * * 
  19.      * @return \ Illuminate \ Http \ Response 
  20.      * /  
  21.      función pública create ()  
  22.     {  
  23.         //  
  24.     }  
  25.   
  26.     / ** 
  27.      * Almacene un recurso recién creado en el almacenamiento. 
  28.      * * 
  29.      * @param \ Illuminate \ Http \ Request $ request 
  30.      * @return \ Illuminate \ Http \ Response 
  31.      * /  
  32.      tienda de funciones públicas (Solicitud $ solicitud)  
  33.     {  
  34.         //  
  35. $ datos = nuevo  formulario;  
  36. if ($ archivos = $ solicitud-> archivo ( 'imagen' )) {  
  37. $ nombre = $ archivos-> getClientOriginalName ();  
  38. $ archivos-> mover ( 'imágenes' , $ nombre);  
  39. $ datos-> ruta = $ nombre;  
  40. }  
  41. $ datos-> guardar ();  
  42.     }  
  43.  / ** 
  44.      * Mostrar el recurso especificado. 
  45.      * * 
  46.      * @param int $ id 
  47.      * @return \ Illuminate \ Http \ Response 
  48.      * /  
  49.      función pública show ($ id)  
  50.     {  
  51.         //  
  52.     }  
  53.   
  54.     / ** 
  55.      * Mostrar el formulario para editar el recurso especificado. 
  56.      * * 
  57.      * @param int $ id 
  58.      * @return \ Illuminate \ Http \ Response 
  59.      * /  
  60.      función pública editar ($ id)  
  61.     {  
  62.         //  
  63.    }  
  64.   
  65.     / ** 
  66.      * Actualiza el recurso especificado en el almacenamiento. 
  67.      * * 
  68.      * @param \ Illuminate \ Http \ Request $ request 
  69.      * @param int $ id 
  70.      * @return \ Illuminate \ Http \ Response 
  71.      * /  
  72.      actualización de la función pública (Solicitud $ solicitud, $ id)  
  73.     {  
  74.         //  
  75.     }  
  76.   
  77.     / ** 
  78.      * Eliminar el recurso especificado del almacenamiento. 
  79.      * * 
  80.      * @param int $ id 
  81.      * @return \ Illuminate \ Http \ Response 
  82.      * /  
  83.      función pública destruir ($ id)  
  84.     {  
  85.         //  
  86.     }  
  87. }  
En el código anterior, hemos definido la función store () en la que almacenamos el archivo en la variable $ name , y luego movemos el archivo a la carpeta de imágenes. El archivo que movimos a la carpeta de imágenes se guarda en una base de datos usando la instrucción $ data-> save () .
  • Ahora, definimos una ruta.
  1. Ruta :: get ('/ file-upload', function () {  
  2.     vista de retorno ('formulario');  
  3. });  
Salida
Laravel File Upload
Cuando hacemos clic en el botón Elegir archivo , debemos seleccionar el archivo que queremos cargar. Supongamos que he seleccionado el archivo llamado ' img.png ' que se muestra en la siguiente captura de pantalla:
Laravel File Upload
En la captura de pantalla anterior, elegí el archivo ( img.png ) y luego hacemos clic en el botón Cargar . Después de hacer clic en el botón Cargar , el archivo se guarda en la base de datos que se muestra en la siguiente captura de pantalla:
Laravel File Upload

Recuperando los datos de la base de datos

En esta sección, veremos cómo recuperar los datos de la base de datos.
  • Primero, definiremos la función index () en la clase FormController .
FormController.php
  1.  índice de función pública ()  
  2. {  
  3.         $ cruds = Crud :: all ();  
  4.          vista de retorno 'index' , compact ( 'cruds' ));  
  5.     }  
  • En este paso, agregamos la etiqueta <img>.
index.blade.php
  1. @extends 'layout.master' )  
  2. @section 'contenido' )  
  3. @foreach ($ formularios como $ formulario)  
  4. <div>  
  5. <img src = "./images / {{$ form-> ruta}}" >  
  6. </div>  
  7. @endforeach  
En el código anterior, " ./images/{{$form->path}} " define la ruta de la imagen, es decir, la imagen se almacena en la carpeta de imágenes .
  • Ahora, definiremos la ruta que muestra la imagen.
Route :: get ('/ show', 'FormController @ index');
Salida
Laravel File Upload
Laravel File Upload
En el caso anterior, utilizamos la forma estática para mostrar la imagen pasando la ruta al atributo src. También podemos mostrar la imagen sin pasar el nombre (imágenes) de la carpeta en la etiqueta <img>, y esto se puede lograr definiendo la función getPathAttribute () en el modelo de formulario .
Form.php
  1. <? php  
  2. aplicación de espacio de nombres;  
  3. use Illuminate \ Database \ Eloquent \ Model;  
  4. clase  Forma  extiende  Modelo  
  5. {  
  6.     //  
  7. public  $ directory = "./images/" ;  
  8. protected  $ table = 'formularios' ;  
  9.  función pública getPathAttribute ($ value)  
  10. {  
  11.   devuelve  $ this -> directorio. $ value;  
  12. }  
  13. }  
index.blade.php
  1. @extends 'layout.master' )  
  2. @section 'contenido' )  
  3. @foreach ($ formularios como $ formulario)  
  4. <div>  
  5. <img src = "{{$ form-> ruta}}" >  
  6. </div>  
  7. @endforeach  
Salida
Laravel File Upload

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

outbrain

Páginas