28 Uploads de archivos a las carpetas de forma PÚBLICA Y PRIVADO curso de LARAVEL (PHP y MySql)

Duración: 10 min
Módulo: 📤 Carga y Almacenamiento de Archivos Lección 3 de 4

Descripción

🔒 Lección 28: Uploads de Archivos a las Carpetas de Forma Pública y Privada

Este capítulo se centra en mejorar la lógica de carga de archivos en el backend, asegurando que los archivos subidos mantengan su nombre original y gestionando su visibilidad (pública o privada) dentro del sistema de archivos de Laravel.

🏷️ Mantenimiento del Nombre Original del Archivo

  • Problema de Encriptación: Se explica que la configuración predeterminada de Laravel encripta el nombre del archivo al guardarlo, lo que dificulta la identificación para el usuario [00:39].
  • Solución con Identificador Único: Para mantener el nombre original y evitar la sobrescritura de archivos con nombres duplicados, se utiliza la función time() (el identificador de tiempo) y se concatena con el nombre original del archivo (getClientOriginalName) [01:39].
  • Paso de Parámetro name: Al utilizar el método store o put del facade Storage, se pasa el nuevo nombre ($fileName) como parámetro, forzando a Laravel a usar esta cadena en lugar de encriptar el nombre [02:24].

🌐 Almacenamiento Público vs. Privado

  • Almacenamiento Público (Public):
    • Al añadir el parámetro 'public' al método de almacenamiento (Storage::put($ruta, $archivo, 'public')), el archivo se guarda dentro del subdirectorio storage/app/public [03:26].
    • Estos archivos son accesibles mediante un link público (tras ejecutar php artisan storage:link), lo que es adecuado para archivos que deben ser vistos por cualquier usuario o en un navegador (ej. imágenes de perfil, documentos compartidos) [03:37].
    • La ruta de acceso es típicamente URL_BASE/storage/ID_CARPETA/NOMBRE_ARCHIVO [08:00].
  • Almacenamiento Privado (Private):
    • Al omitir el parámetro 'public' o usar Storage::putFile('ruta', $archivo), el archivo se guarda dentro de la carpeta storage/app [06:07].
    • Estos archivos no son accesibles directamente a través de una URL pública. Para verlos o descargarlos, se debe usar una ruta definida en Laravel que verifique la autenticación y permisos antes de devolver el contenido del archivo.
    • Esta modalidad es ideal para archivos sensibles que deben estar protegidos y solo ser accesibles por los usuarios correctos (ej. documentos internos, copias de seguridad) [07:07].

📁 Organización por ID de Carpeta

  • Estructura de Directorios: En ambas modalidades (pública y privada), el archivo se guarda dentro de un subdirectorio que tiene como nombre el ID de la carpeta a la que pertenece [06:51]. Esto mantiene la coherencia entre el sistema de archivos del proyecto y la base de datos.
  • Próximo Paso: El instructor reitera que el siguiente capítulo se centrará en registrar la información del archivo (nombre, ruta, ID de carpeta) en la base de datos, para que los archivos subidos puedan ser listados y gestionados desde el frontend.