23 🖼️ GALERÍA de Productos: Subida y Eliminación de Imágenes | File Upload en Laravel 12 E-commerce
Duración: 30 min
Módulo: 📦 Módulos Esenciales (Categorías y Productos) 17-24
Lección 7 de
8
Descripción
Lección 23: 🖼️ Galería de Productos: Subida y Eliminación de Imágenes
Este capítulo es esencial para la gestión del inventario, pues se crea un espacio dedicado y funcional para manejar todas las fotografías de cada producto, implementando un flujo completo de carga y eliminación.
🧭 Preparación y Navegación
Para una gestión de imágenes más eficiente, se establece un acceso directo desde el listado de productos:
- Se crea un botón con el ícono 🖼️ Imagen en la vista principal (index) de productos [01:11].
- Este botón dirige a una nueva ruta específica (/productos/{id}/imagenes) [02:56], desacoplando la funcionalidad de la vista de detalle (show).
📤 Carga de Archivos a través de Modal
El proceso de subida se centraliza en una interfaz simple y directa:
- Se utiliza un componente Modal de Bootstrap para la interfaz de carga [04:57].
- El formulario de subida requiere el atributo enctype="multipart/form-data" para el correcto envío del archivo [13:36].
- Se incluye un script para la previsualización (🔍) de la fotografía seleccionada antes de confirmar la subida [08:07].
🛡️ Lógica de Almacenamiento (uploadImage)
El controlador maneja el archivo y registra su ruta de manera segura:
- Validación: Se aplican reglas estrictas para garantizar que el archivo sea una imagen con extensiones válidas, limitando su tamaño a un máximo de 2 MB [10:38].
- Almacenamiento Seguro: La imagen se guarda en el Storage público del servidor (ruta: storage/app/public/productos) con un nombre encriptado para evitar colisiones [12:34].
- Registro en Base de Datos: Se crea un nuevo registro en la tabla producto_imagen que enlaza la ruta del archivo y el ID del producto asociado [11:53].
🗑️ Eliminación Completa y Segura (destroyImage)
La funcionalidad de borrado está diseñada para garantizar la limpieza total de datos innecesarios:
- Se implementa un botón Borrar Imagen bajo cada miniatura de la galería [25:06].
- El método de eliminación ejecuta una doble acción crítica [27:07]:
- Limpieza del Servidor: Primero, elimina el archivo físico (Storage::delete) del disco.
- Limpieza de la Base de Datos: Luego, elimina el registro de la imagen en la tabla producto_imagen.
- Esto previene que el servidor acumule "basura" o archivos huérfanos sin registros asociados, manteniendo el sistema limpio y optimizado.
Lecciones
🚀 Configuración Inicial y Sistema de Administración 1-6
🛡️ Roles, Permisos y Gestión de Usuarios (Spatie) 7-16
Lección 4. 10 ⚙️ CRUD Completo de Roles | Spatie Roles & Permisos | Ecommerce Laravel 12 FullStack
25 min
Lección 6. 12 🔐 Ajustes en el Login y Seeder de Usuarios | Sistema Ecommerce Laravel 12 FullStack
40 min
Lección 8. 14 🔍 Buscador y Detalle de Usuarios (Acción Show) | Ecommerce Laravel 12 FullStack
32 min
📦 Módulos Esenciales (Categorías y Productos) 17-24
🛒 Tienda Online (Frontend Shop) y Funcionalidades 25-33
Lección 4. 28 🛒 Vista Show Dinámica del Producto | Descripción y Datos Relacionados | Laravel 12
15 min
💳 Carrito, Checkout y Pasarela de Pagos 34-42
Lección 4. 37 💳 PASARELA DE PAGOS PayPal | Integración y Lógica de Checkout en Laravel 12 E-commerce
27 min
Lección 5. 38 ✅ PAGO COMPLETADO y REGISTRO de Pedido | Lógica Final de Venta con PayPal y Laravel 12
11 min
⚙️ Gestión de Órdenes, Perfiles y Características Avanzadas 43-61
Lección 5. 47 🔗 BUSCADOR AVANZADO: Filtrando Tablas Relacionadas con WHERE HAS y Joins en Laravel 12
10 min
📊 Análisis de Datos, Despliegue y Conclusión 62-68
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️