This tutorial shows a step by step solution to Angular file upload Spring Boot backend and store it on file system. We will cover a file upload from a basic input and also from a drag-drop area.

Server side

This section covers the Spring Boot server implementation

Spring Boot Controller

Our Spring Boot application exposes a single endpoint to upload files. Below it’s content :

  • @RestController is used to make the Java Class handle HTTP requests. @RestController is a shortcut of the combination of @Controller along with @ResponseBody.
  •  The controller handles one POST HTTP request. The file is sent a request parameter named “file” of type   MultipartFile

The controller is as simple as you see. Let’s see now the  FileService.

Spring Component FileService

We extracted the logic of storing the file a Spring Component FileService. Below it’s content :

That’s it for server side. Let’s see now the front end implementation.

Client side with Angular

Angular CLI is used to create the Angular application along with  ng2-file-upload module to handle file upload from client side.

Angular Module

First, add the FileUploadModule to app.module.ts

Angular component

Our main component contains a input of type “file” and a drag-and-drop area :

  • app.component.html

A CSS is added to make the look and feel pretty

  • app.component.scss
And then creating the logic in the TypeScript component.

  • app.component.ts
That’s is. The result looks like :

Angular Spring boot file upload

The tutorial source code is available on Github. Download the source