27 Uploads de archivos a las carpetas en el fomulario en el curso de LARAVEL (PHP y MySql) FullStack

Duración: 16 min
Módulo: 📤 Carga y Almacenamiento de Archivos Lección 2 de 4

Descripción

💾 Lección 27: Upload de Archivos a las Carpetas en Laravel con Dropzone

Este capítulo establece la lógica del controlador y las rutas necesarias para procesar la subida de archivos que se inició con la interfaz Dropzone.js, garantizando que los archivos no solo se carguen físicamente, sino que también se organicen por el ID de la carpeta padre.

🛣️ Configuración de Rutas y Controlador

  • Ruta de Carga de Archivos: Se define una nueva ruta de tipo POST en web.php para manejar el envío de archivos (mi-unidad.archivo.upload) [01:23].
  • Controlador Específico: Esta ruta apunta a la función upload dentro del ArchivoController (un controlador separado para la gestión de archivos) [02:16].
  • Ajuste del Formulario: Se corrige un error en la vista anterior al añadir el atributo name="file" al input de tipo file [03:29].
  • Envío de ID de Carpeta: Se agrega un input hidden al formulario que lleva el ID de la carpeta actual ($carpeta->id) [08:55]. Este ID es crucial para organizar los archivos en el servidor.

💻 Lógica del Controlador (ArchivoController@upload)

  1. Recepción de Datos: El controlador recibe el archivo y el ID de la carpeta a través del request [04:07].
  2. Identificador Único: Se recomienda utilizar el tiempo actual (time()) y concatenarlo con el nombre original del archivo para crear un nombre de archivo único ($fileName) [05:06]. Esto previene conflictos por nombres duplicados.
  3. Habilitar Almacenamiento: Se recuerda al usuario la necesidad de ejecutar el comando php artisan storage:link para crear un enlace simbólico que haga accesible la carpeta de almacenamiento público (storage/app/public) [06:08].
  4. Almacenamiento Físico: Se demuestran dos métodos para almacenar el archivo:
    • Método store (Recomendado): Utiliza el facade Storage de Laravel para subir el archivo al disco configurado (por defecto, local), creando un subdirectorio con el ID de la carpeta para mantener la organización [08:29].
    • Método move (Alternativo): Mueve el archivo a la carpeta public del proyecto, lo que facilita la visualización directa, aunque el instructor decide trabajar con el método store por una mejor gestión [12:59].

Verificación y Próximos Pasos

  • Prueba de Carga Masiva: Se demuestra que la subida funciona correctamente y que Dropzone permite la carga de múltiples archivos a la vez [14:45].
  • Verificación en el Servidor: Se muestra cómo los archivos subidos se almacenan en la ruta correcta dentro de storage/app/public en una nueva carpeta con el ID de la carpeta principal (ej. 3) [12:11].
  • Paso Siguiente: El instructor anuncia que el próximo capítulo se centrará en la persistencia de datos (guardar el registro del archivo en la base de datos) para que los archivos subidos puedan ser visualizados en el frontend [15:22].