33 Como hacer un visor de imágenes en las carpetas en el curso de LARAVEL (PHP y MySql) FullStack

Duración: 11 min
Módulo: 📄 Listado y Visualización de Archivos Lección 4 de 7

Descripción

🖼️ Lección 33: Cómo Hacer un Visor de Imágenes en las Carpetas

Este capítulo es fundamental para la interactividad del sistema de gestión de archivos. El instructor se enfoca en crear una solución para visualizar las imágenes subidas al hacer clic en el nombre del archivo, utilizando una ventana modal (pop-up) en lugar de simplemente redirigir a una nueva página.

🔗 Vínculo Inicial a Archivo

Inicialmente, el instructor explica cómo crear un vínculo directo al archivo para poder visualizarlo, lo cual es la base para el visor:

  1. Etiqueta <a>: Se envuelve el nombre del archivo dentro de una etiqueta de anclaje <a> [01:00].
  2. Construcción de la Ruta: La ruta (href) se construye concatenando varias partes para apuntar directamente a la imagen en el sistema de archivos de Laravel, que es pública:
    • asset('storage/'): El inicio de la ruta pública para archivos de almacenamiento [01:56].
    • $archivo->carpeta_ID: El identificador de la carpeta donde reside el archivo [02:47].
    • $archivo->nombre: El nombre único y completo del archivo [03:41].
  3. Resultado Inicial: Al hacer clic, el navegador carga la imagen directamente, confirmando que la ruta construida es correcta [03:59].

Implementación del Visor Modal

En lugar de la redirección simple, se opta por una ventana modal de Bootstrap para una mejor experiencia de usuario:

  1. Estructura Modal: Se define una plantilla modal de Bootstrap con el ID modal_visor_archivos al final de la vista [05:05].
  2. Disparador Modal: El link de la imagen se convierte en un disparador de modal, utilizando los atributos data-toggle="modal" y data-target [06:17].
  3. Problema de IDs Repetidos: Se identifica un problema clave: como el modal está dentro de un bucle @foreach, todos los archivos comparten el mismo ID de modal, lo que provoca que solo el primer archivo sea visible [09:44].
  4. Solución Única: Para que cada archivo tenga su propio modal único, se concatena el ID del archivo al ID del modal (modal_visor_archivo_{{ $archivo->id }}) tanto en el código del modal como en el atributo data-target del link [09:59].
  5. Carga Condicional de Imagen: Dentro del cuerpo del modal, se utiliza una lógica condicional (if) basada en la extensión (similar a la usada para los iconos) para mostrar la imagen solo si la extensión es jpg (o de imagen) [07:36]. La ruta de la imagen dentro del modal es la misma que la construida para el enlace directo.

Con esta implementación, los usuarios pueden hacer clic en un archivo de imagen para verlo inmediatamente en un pop-up, mejorando el flujo de trabajo. El instructor anuncia que el próximo capítulo abordará la forma de visualizar documentos PDF en este mismo visor [10:35].