wordpress

Laravel VueJS File Upload Using Vue-dropzone Example: Implementing File Upload

Requisitos previos

Antes de comenzar a implementar la carga de archivos en Laravel utilizando Vue-dropzone, asegúrate de tener los siguientes requisitos previos:

1. Laravel instalado en tu sistema.
2. Composer instalado en tu sistema.
3. Node.js instalado en tu sistema.
4. Conocimientos básicos de Laravel y Vue.js.

Instalación de Laravel y configuración del proyecto

En primer lugar, debes instalar Laravel en tu sistema. Puedes hacerlo siguiendo la documentación oficial de Laravel.

Una vez que hayas instalado Laravel, crea un nuevo proyecto ejecutando el siguiente comando en tu terminal:

«`
composer create-project –prefer-dist laravel/laravel nombre-del-proyecto
«`

Después de crear el proyecto, navega hasta la carpeta del proyecto ejecutando el siguiente comando:

«`
cd nombre-del-proyecto
«`

Instalación de Vue-dropzone

Para utilizar Vue-dropzone en tu proyecto Laravel, debes instalarlo utilizando npm. Ejecuta el siguiente comando en tu terminal:

«`
npm install vue2-dropzone
«`

Una vez que se haya completado la instalación, importa Vue-dropzone en tu archivo `app.js` ubicado en la carpeta `resources/js` de tu proyecto Laravel. Agrega la siguiente línea de código al principio del archivo:

«`javascript
import VueDropzone from ‘vue2-dropzone’
import ‘vue2-dropzone/dist/vue2Dropzone.min.css’
«`

Creación de la ruta y el controlador

A continuación, crea una ruta en tu archivo `web.php` ubicado en la carpeta `routes` de tu proyecto Laravel. La ruta será responsable de mostrar la vista de carga de archivos. Agrega la siguiente línea de código al archivo:

Recomendado:  Python Collection Module: Funciones y métodos disponibles

«`php
Route::get(‘/file-upload’, ‘FileUploadController@index’);
«`

Después de crear la ruta, crea un controlador llamado `FileUploadController` ejecutando el siguiente comando en tu terminal:

«`
php artisan make:controller FileUploadController
«`

Abre el archivo `FileUploadController.php` ubicado en la carpeta `app/Http/Controllers` y agrega el siguiente código al controlador:

«`php
Creación de la vista

Ahora, crea una vista llamada `file-upload.blade.php` en la carpeta `resources/views` de tu proyecto Laravel. Esta vista será responsable de mostrar el formulario de carga de archivos. Agrega el siguiente código a la vista:

«`html
@extends(‘layouts.app’)

@section(‘content’)

File Upload
@csrf



@endsection
«`

Configuración del componente Vue-dropzone

Ahora, vamos a configurar el componente Vue-dropzone en nuestra vista de carga de archivos. Abre el archivo `app.js` ubicado en la carpeta `resources/js` de tu proyecto Laravel y agrega el siguiente código al archivo:

«`javascript
require(‘./bootstrap’);

window.Vue = require(‘vue’);

Vue.component(‘vue-dropzone’, require(‘vue2-dropzone’));

const app = new Vue({
el: ‘#app’,
});
«`

Después de agregar el código, compila los assets de tu proyecto ejecutando el siguiente comando en tu terminal:

«`
npm run dev
«`

Manejo de la carga de archivos en el controlador

Ahora, vamos a manejar la carga de archivos en el controlador. Abre el archivo `FileUploadController.php` ubicado en la carpeta `app/Http/Controllers` y agrega el siguiente código al controlador:

«`php
file(‘file’);

$fileName = time() . ‘_’ . $file->getClientOriginalName();

$file->storeAs(‘uploads’, $fileName);

return redirect(‘/file-upload’)->with(‘success’, ‘File uploaded successfully.’);
}
}
«`

En el código anterior, estamos obteniendo el archivo cargado del formulario y generando un nombre único para el archivo. Luego, almacenamos el archivo en la carpeta `uploads` utilizando el método `storeAs()`.

Recomendado:  Laravel Named Routes: Sintaxis para definir rutas con nombres

Mostrando los archivos cargados

Por último, vamos a mostrar los archivos cargados en nuestra vista de carga de archivos. Abre el archivo `file-upload.blade.php` ubicado en la carpeta `resources/views` de tu proyecto Laravel y agrega el siguiente código al archivo:

«`html
@extends(‘layouts.app’)

@section(‘content’)

File Upload
@if (session(‘success’))

@endif

@csrf




Uploaded Files

    @foreach ($files as $file)

  • {{ $file }}
  • @endforeach

@endsection
«`

En el código anterior, estamos mostrando un mensaje de éxito si el archivo se ha cargado correctamente. Luego, estamos mostrando una lista de los archivos cargados utilizando un bucle `foreach`.

Conclusión

En este tutorial, hemos aprendido cómo implementar la carga de archivos en Laravel utilizando Vue-dropzone. Hemos configurado Vue-dropzone en nuestro proyecto Laravel, hemos creado una ruta y un controlador para manejar la carga de archivos, y hemos mostrado los archivos cargados en nuestra vista. Ahora puedes implementar fácilmente la carga de archivos en tu proyecto Laravel utilizando Vue-dropzone.

Autor

osceda@hotmail.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *