44 Cargar imagen del PRODUCTO al PROYECTO en el SISTEMA VETERINARIO(PHP y MySql)FullStack
Duración: 15 minDescripción
🎬 Lección 44: Carga de Imagen y Finalización del Controlador CREATE 💾
El objetivo principal de esta lección es implementar el código PHP para mover físicamente el archivo de imagen cargado por el usuario al directorio del proyecto y asegurar que todos los campos, incluido el ID del usuario, se envíen correctamente.
1. Carga Física de la Imagen al Servidor 🖼️
Para subir la imagen al proyecto, se utiliza la función nativa de PHP:
- Función Clave: Se usa move_uploaded_file [00:13], la cual requiere dos parámetros: la ubicación temporal del archivo ($_FILES['file']['tmp_name']) y la ruta de destino final.
- Ruta de Destino ($location): Se define la ruta de la carpeta public/imagenes/productos navegando de forma relativa desde el archivo del controlador. [01:06]
2. Generación de Nombre de Archivo Único 🔒
El instructor implementa una medida de seguridad esencial para evitar conflictos de nombres que podrían sobrescribir archivos existentes:
- Concatenación de Tiempo: El nombre del archivo que se guardará se genera concatenando la fecha y hora exactas (año, mes, día, hora, minuto y segundo) con el nombre original del archivo. [06:07]
- Registro en la DB: Este nombre de archivo único generado es el que finalmente se almacena en la columna imagen de la base de datos, garantizando que cada producto apunte a un archivo distinto. [08:20]
3. Ajustes Finales al Formulario y el ID de Usuario
Se realizan correcciones en el formulario para asegurar que todos los datos necesarios lleguen al controlador:
- Envío del Código: El campo Código se duplica: uno permanece con el atributo disabled para la visualización del usuario, y el otro se convierte en un campo hidden (type="hidden") para que el valor sea enviado correctamente en la petición POST. [13:08]
- Obtención del ID de Usuario: Para registrar qué usuario creó el producto, se realiza una consulta adicional al inicio de la vista para obtener el ID_usuario basado en la sesión de correo electrónico actual. Este ID se inserta en un campo hidden (name="ID_usuario") dentro del formulario. [12:32]
El video concluye con una prueba exitosa donde se registra un producto, se sube la imagen al proyecto con un nombre único y todos los datos se insertan correctamente en MySQL.
El próximo capítulo abordará la acción Show (mostrar los datos completos del producto en una ventana modal). [14:59]
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️