Site Overlay

Angular 10/9 Multiple File Uploading Service with Progress Report

In this how-to tutorial, we’ll see how to build a multiple file/image uploading service with Angular 10/9 which allows you to upload files to a remote server via a POST request method to listen for progress events.

Prerequisites

We’ll only see how to implement the service for sending a POST request to upload files and listen for progress events, but we’ll not create a project from scratch so you’ll need to install Angular CLI 10 and initialize a project.

Step 1 – Creating an Angular 10 Service

Open a new terminal and run the following command to generate a service:

$ ng generate service upload

Next, open the src/app/upload.service.ts file and import the following:

import { HttpClient, HttpEvent, HttpErrorResponse, HttpEventType } 
         from  '@angular/common/http';  
import { map } from  'rxjs/operators';

Next, inject HttpClient via the service constructor:

@Injectable({  
  providedIn: 'root'  
})  
export class UploadService { 
	constructor(private httpClient: HttpClient) { }

Step 2 – Implementing the Upload Method

Next, add the upload() method which simply calls the post() method of HttpClient to send an HTTP POST request with form data to the file upload server:

public upload(fileData) {

	return this.httpClient.post<any>("https://file.io/", fileData, {  
      reportProgress: true,  
      observe: 'events'  
    });  
}

Conclusion

In this quick how-to article, we’ve implemented a service for uploading files to a server and listening for progress events in Angular 10 by example.

Leave a Reply

Your email address will not be published. Required fields are marked *