43 Módulo compartir archivo de PRIVADO a PÚBLICO en el curso de LARAVEL (PHP y MySql) FullStack

Duración: 11 min
Módulo: 🔗 Opciones de Compartición y Privacidad Lección 1 de 7

Descripción

🔄 Lección 43: Módulo Compartir Archivo de Privado a Público

Este capítulo se centra en dos tareas clave:

  1. Ajustar la lógica de eliminación para manejar archivos privados y públicos correctamente.
  2. Preparar la interfaz para la funcionalidad de compartir archivos (cambiar su estado de privado a público).

🗑️ Ajuste en la Lógica de Eliminación de Archivos

El instructor comienza solucionando un error donde el archivo físico no se eliminaba del servidor cuando su estado era privado (storage/app).

  1. Determinación del Estado: En el método de eliminación del ArchivoController, se recupera el estado_archivo del registro desde la base de datos [01:37].
  2. Lógica Condicional:
    • Si es privado: La ruta para eliminar el archivo se construye usando la carpeta app (storage/app/{ID_carpeta}/{nombre_archivo}) [02:42].
    • Si es público (por defecto): Se mantiene la ruta original que usaba el directorio public [02:59].
  3. Ajuste de Ruta para Archivos Privados: Después de pruebas, se determina que la ruta correcta para Storage::delete() en archivos privados es directamente la carpeta del ID, sin incluir app/ [03:45]. Este ajuste garantiza que el archivo se borre tanto de la base de datos como del servidor [04:30].

Implementación de Confirmación de Eliminación

Para mejorar la experiencia del usuario y prevenir eliminaciones accidentales, se añade una ventana de confirmación antes de ejecutar la acción de borrado:

  • Se utiliza un script de JavaScript (confirm('...')) similar al implementado en el módulo de usuarios [05:30].
  • Este script se añade al evento onclick del botón de eliminar en la vista (show.blade.php), solicitando al usuario que confirme si desea eliminar el archivo [05:44].

📤 Preparación del Botón Compartir

Finalmente, se añade el botón de "Compartir" en la interfaz de archivos, que será el punto de entrada para el próximo módulo:

  • Se integra el botón (<button class="btn btn-success btn-sm">) junto al botón de eliminar, utilizando un icono de compartir (share) [08:50].
  • Se agrupan los botones utilizando la clase de Bootstrap btn-group para mejorar la alineación visual [09:44].

El instructor anuncia que en el próximo video se implementará la funcionalidad para que, al presionar este botón, el estado del archivo cambie de privado a público y se genere un enlace compartible para terceros [10:35].