40 Subir archivos de forma privada en el servidor en el curso de LARAVEL (PHP y MySql) FullStack

Duración: 13 min
Módulo: 🗑️ Eliminación y Seguridad de Archivos Lección 4 de 6

Descripción

🔒 Lección 40: Subir Archivos de Forma Privada en el Servidor

Este capítulo aborda la corrección del error de las subcarpetas y realiza una refactorización fundamental en el sistema de carga de archivos para asegurar que, por defecto, todos los archivos se almacenen de forma privada.

⚙️ Corrección del Error en Subcarpetas

El video comienza solucionando el error introducido en la lección anterior al crear subcarpetas:

  1. Envío del ID de Usuario: Se corrige la vista show.blade.php agregando un campo oculto (<input type="hidden">) en el modal de creación de subcarpetas. Este campo envía el user_ID del usuario autenticado, asegurando que cada subcarpeta esté correctamente vinculada a su propietario [00:39].
  2. Recepción en el Controlador: El CarpetaController se actualiza para recibir y almacenar el user_ID al crear la subcarpeta [02:00].

🛡️ Implementación del Almacenamiento Privado

Una vez corregido el error, el instructor enfoca el sistema en la privacidad, iniciando con un reinicio completo de la migración y creación de usuarios para empezar de cero [05:01]:

1. Cambio a Storage Privado

Se modifica el método upload del ArchivoController para usar el almacenamiento privado de Laravel:

  • Se comenta la línea que usaba el storage público (public_path) [07:01].
  • Se habilita la línea de código que utiliza el método Storage::putFile() [07:09].

Este cambio crucial hace que los archivos se guarden dentro del directorio storage/app (fuera de public), haciéndolos inaccesibles mediante una URL pública directa [08:24].

2. Control de Estado en la Base de Datos

Debido a que los archivos ya no tienen una URL pública, los visores programados previamente dejan de funcionar. Para gestionar el acceso, se introduce una nueva columna en la tabla archivos:

  • Se añade la columna estado_archivo en la migración de la tabla archivos [09:56].
  • En el controlador, al subir un archivo, el campo estado_archivo se establece por defecto en el valor de privado [10:58].

⏭️ Próximos Pasos

La lección concluye con la necesidad de implementar una opción para cambiar el estado del archivo de privado a público [12:17]. Este cambio permitirá generar un enlace de descarga o visualización temporal que se pueda compartir, cumpliendo el objetivo principal de la gestión de archivos.