Contenido del curso
Conceptos
- 5

Verificación de Resultados en Pruebas Unitarias con PHPUnit
07:09 min - 6

Testing de Helpers en PHP con PHPUnit
07:26 min - 7

Pruebas Unitarias en Laravel: Mutadores y Campos Virtuales
08:29 min - 8

Pruebas de Métodos Personalizados en PHP con Laravel
04:56 min - 9

Testing de Carga de Archivos en Laravel
08:48 min - 10

Creación de Formulario HTML para Carga de Imágenes en Servidor
Viendo ahora - 11

Refactorización y Testing en Proyectos de Programación
04:48 min - 12

Validación de Formularios y Testing en Laravel
06:12 min - 13

Pruebas de Datos en Bases de Datos con PHP y Laravel
08:41 min
Proyecto
- 14

Metodología TDD en PHP: Creación y Pruebas Efectivas
04:37 min - 15

Desarrollo de un Proyecto Sencillo con Enfoque en Testing
01:34 min - 16

Pruebas HTTP en PHP con Artisan y Base de Datos
08:48 min - 17

Test de Visualización de Datos en Tabla de Etiquetas
05:36 min - 18

Configuración de Pruebas Unitarias para Crear Registros en Laravel
07:35 min - 19

Eliminación de registros en base de datos con Laravel
05:59 min - 20

Validación
03:16 min - 21

Pruebas de Funcionalidad de Etiquetas en Laravel desde el Navegador
05:25 min - 22

Mejorando el Diseño de Proyectos con Tailwind CSS
06:37 min - 23

Pruebas Unitarias en PHP: Creación y Verificación de Campos Virtuales
05:58 min
Conclusión
Creación de Formulario HTML para Carga de Imágenes en Servidor
Resumen
Verificar que la carga de archivos funciona correctamente no solo depende del testing automatizado. Probar desde el navegador permite confirmar de forma visual que las imágenes se almacenan donde esperamos, y para eso necesitamos un formulario HTML bien configurado dentro de Laravel.
¿Cómo crear un formulario para subir archivos en Laravel?
Antes de diseñar el formulario, es importante confirmar que la ruta está disponible. En el archivo de rutas web.php, ya se había definido una ruta profile que retorna una vista y otra que recibe la petición por método POST [0:47]. Con eso claro, el siguiente paso es construir el formulario en la vista correspondiente.
El formulario necesita tres elementos esenciales:
- Acción y método: la etiqueta
<form>apunta a la rutaprofilecon el métodopost. - Token CSRF: Laravel exige este token para validar que el formulario es seguro y legítimo [1:24].
- Atributo enctype: se debe agregar
enctype="multipart/form-data"para que el navegador envíe el archivo como binario y no como texto plano [1:32].
El atributo enctype con valor multipart/form-data es indispensable cuando se trabaja con carga de archivos. Sin él, la imagen llegaría al servidor como una cadena de texto inutilizable.
¿Qué campos necesita el formulario?
Dentro del formulario se colocan dos campos principales:
- Un
<input type="file" name="foto">que permite al usuario seleccionar la imagen [1:50]. - Un
<input type="submit" value="Enviar">que ejecuta la petición.
El atributo name="foto" debe coincidir exactamente con el nombre del campo que el controlador espera recibir en el servidor [1:57]. Esta correspondencia entre el nombre del campo en el formulario y la validación en el backend es fundamental para que Laravel procese el archivo correctamente.
¿Dónde se almacenan las imágenes subidas?
Al presionar el botón enviar, el navegador ejecuta la petición POST hacia la ruta configurada. Laravel recibe el archivo y lo guarda en el disco de almacenamiento [2:25].
Para verificar que todo funcionó, basta con revisar la estructura de carpetas del proyecto:
- Las imágenes subidas desde el navegador se almacenan en
storage/app/dentro de la carpeta de perfiles configurada [2:33]. - Las imágenes generadas durante el testing se guardan en una carpeta separada dentro de
storage/framework/[2:47].
Esta separación es importante porque permite que los tests automatizados no interfieran con los archivos reales de la aplicación.
¿Por qué combinar testing y pruebas manuales en el navegador?
El testing automatizado ya había confirmado que el código de carga de archivos funcionaba correctamente. Sin embargo, la prueba desde el navegador aporta una verificación visual que complementa al test unitario [2:55].
- El test garantiza que la lógica del servidor procesa y almacena el archivo.
- La prueba manual confirma que el formulario HTML, el token CSRF, el enctype y la ruta trabajan en conjunto sin errores.
Esta combinación brinda mayor confianza en que la funcionalidad está lista para producción. El código del controlador ya existía; lo único que se necesitó fue diseñar el formulario con los atributos correctos y enviar la imagen.
Si estás implementando carga de archivos en tu proyecto Laravel, comparte qué tipo de validaciones adicionales aplicas en el servidor para controlar el tamaño o formato de las imágenes.