- 1

Conexión a REST APIs con Angular HTTP y buenas prácticas
02:58 - 2

Solicitudes GET en APIs con Angular: Obtener Productos
10:41 - 3

Consulta de Producto Específico en eCommerce con Angular
11:31 - 4

Integración de Swiper en Angular para Galería de Productos
08:12 - 5

Creación de Productos con POST y Data Transfer Objects en Angular
15:59 - 6

Actualización de Datos con Métodos PUT y PATCH en APIs
14:23 - 7

Eliminar productos con solicitudes DELETE en Angular
06:04 - 8

Paginación de Productos con Parámetros URL en Angular
12:45 - 9

Ventajas de los Observables sobre Promesas en Angular
12:22 - 10

Implementación de Retry con Observadores en Angular
03:23
Subida de Archivos con HTTP y Angular paso a paso
Clase 22 de 23 • Curso de Consumo de APIs REST con Angular
Contenido del curso
- 11

Solución de Problemas CORS en Aplicaciones Angular
11:33 - 12

Gestión de Ambientes en Angular: Desarrollo vs Producción
05:06 - 13

Manejo de Errores en Observables con Angular
12:06 - 14

Transformaciones de Datos en el Frontend con Map y Pipes
06:02 - 15

Evitando el Callback Hell con SwitchMap y ZIP en Observables
10:42
- 16

Autenticación con JWT: Implementación y Gestión de Sesiones en APIs
19:43 - 17

Autenticación y Manejo de Tokens en Peticiones HTTP
09:31 - 18

Implementación de Interceptores en Angular para Medir Tiempos de Respuesta
08:03 - 19

Interceptores en Angular: Agregar Token Automáticamente
15:04 - 20

Uso de Contextos para Interceptores en Angular
05:50
Una necesidad trivial de un formulario suele ser la carga de un archivo. Un PDF, una foto, etc. Cuando requieres de este tipo de Inputs, tienes que considerar que este archivo está compuesto por datos binarios que tienes que enviar al servidor.
Guardado de binarios en un servidor
En las API REST, el envío de información se realiza en formato JSON con el header Content-type: application/json. Pero para el envío de archivos binarios, se utiliza el header Content-type: multipart/form-data.
Veamos a continuación cómo enviar este tipo de dato con Angular.
1. Formulario para envio de datos
Utilizando la clase FormData, puedes instanciar un formulario de este tipo y adjuntarle con append() el Blob del archivo que quieres enviar el servidor
// services/files.services.ts
export class FilesService {
constructor(
private http: HttpClient,
) { }
uploadFile(file: Blob): Observable<any> {
const form = new FormData();
form.append('file', file);
return this.http.post(`https://example.com/api/files`, form, {
headers: {
'Content-type': 'multipart/form-data'
}
});
}
}
2. Capturando el archivo
Ahora, desde el componente, tienes que crear un Input que capture el archivo y una función que lo manipule y realice la solicitud.
<div>
<input type="file" (change)="onLoad($event)">
</div>
onLoad(event: Event): void {
const element = event.target as HTMLInputElement;
const file = element.files?.item(0);
if (file) {
this.filesService.uploadFile(file)
.subscribe(res => {
console.log(res);
});
}
}
Cada vez que el usuario cargue un archivo, se ejecutará el método uploadFile() y a través del evento puedes manipular el elemento HTML y capturar el archivo en formato Blob.
Apóyate de la interfaz HTMLInputElement para tipar el elemento y capturar así el archivo.
Contribución creada por: Kevin Fiorentino.