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:
«`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’)
@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()`.
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’)
@endif
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.