Angular 16 Image Upload Preview Tutorial

Image upload and preview is a common requirement of the application. In this tutorial, we will learn how to upload an image and preview it using Angular 16.

1. Create a new Angular project

First, we need to create a new Angular project. To do this, open the terminal and run the following command:

ng new angular-image-upload-preview

This will create a new Angular project with the name angular-image-upload-preview.

2. Install the required dependencies

Next, we need to install the required dependencies for our project. To do this, run the following command in the terminal:

npm install ng2-file-upload –save

This will install the ng2-file-upload package which will help us to upload and preview images.

3. Create the component

Now, we need to create a component for our image upload and preview. To do this, run the following command in the terminal:

ng generate component image-upload-preview

This will create a new component with the name image-upload-preview.

4. Add the HTML template

Next, we need to add the HTML template for our component. Open the image-upload-preview.component.html file and add the following code:

This will create an input field for selecting the image and a div to display the preview of the image.

5. Add the TypeScript code

Next, we need to add the TypeScript code for our component. Open the image-upload-preview.component.ts file and add the following code:

import { Component, OnInit } from ‘@angular/core’; import { FileUploader } from ‘ng2-file-upload’; @Component({ selector: ‘app-image-upload-preview’, templateUrl: ‘./image-upload-preview.component.html’, styleUrls: [‘./image-upload-preview.component.css’] }) export class ImageUploadPreviewComponent implements OnInit { uploader: FileUploader = new FileUploader({}); constructor() { } ngOnInit() { } }

This will create an instance of the FileUploader class and set it to the uploader variable.

6. Add the CSS styles

Finally, we need to add the CSS styles for our component. Open the image-upload-preview.component.css file and add the following code:

img { border: 1px solid #ccc; padding: 5px; }

This will add a border and padding to the image preview.

7. Add the component to the App component

Now, we need to add the image-upload-preview component to the App component. Open the app.component.html file and add the following code:

This will add the image-upload-preview component to the App component.

8. Run the application

Finally, we can run the application to test the image upload and preview feature. To do this, run the following command in the terminal:

ng serve

This will start the development server and open the application in the browser. Now, you can select an image and preview it in the browser.

Image upload with preview in angular 16 projects; Throughout this tutorial, you will learn how to upload image with preview in a database using the HttpClient module & web rest API with angular 16 projects.

Image Upload with Preview in Angular 16

Steps to upload image with preview in the database with angular 16 using HttpClient module & web rest apis:

  • Step 1: Set up a new Angular project
  • Step 2: Create the Image Upload with Preview Component
  • Step 3: Create the Image Upload with Preview Component Template
  • Step 4: Implement Image Upload Logic
  • Step 5: Style the Image Upload Component (Optional)
  • Step 6: Integrate the Image Upload with Preview Component
  • Step 7: Run the Application

Step 1: Set up a new Angular project

Open your cmd (command prompt) and execute the following commands to install and create a new Angular project and navigate into the project directory:

ng new image-upload-preview
cd image-upload-preview

Step 2: Create the Image Upload with Preview Component

Next, open again your command prompt or cmd to create a new component to handle image uploading:

ng generate component image-upload

Step 3: Create the Image Upload with Preview Component Template

Once you have created a new component named image-upload by using the above-given command, Now you need to open the image-upload.component.html file and add the following code:

<div class="image-upload-container">
  <input type="file" (change)="onFileSelected($event)" accept="image/*">
  <div *ngIf="imageUrl" class="image-preview">
    <img [src]="imageUrl" alt="Preview">
  </div>
  <button *ngIf="selectedImage" (click)="onUpload()">Upload Image</button>
</div>

Step 4: Implement Image Upload Logic

Next, you need to implement image upload logic. So, Open the image-upload.component.ts file and add the following code:

import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-image-upload',
  templateUrl: './image-upload.component.html',
  styleUrls: ['./image-upload.component.css']
})
export class ImageUploadComponent {
  selectedImage: File | null = null;
  imageUrl: string | ArrayBuffer | null = null;

  constructor(private http: HttpClient) {}

  onFileSelected(event: Event): void {
    const inputElement = event.target as HTMLInputElement;
    const file = (inputElement.files as FileList)[0];

    if (file) {
      this.selectedImage = file;
      this.previewImage(file);
    }
  }

  previewImage(file: File): void {
    const reader = new FileReader();
    reader.readAsDataURL(file);

    reader.onload = () => {
      this.imageUrl = reader.result;
    };
  }

  onUpload(): void {
    if (!this.selectedImage) {
      console.log('Please select an image before uploading.');
      return;
    }

    const formData = new FormData();
    formData.append('image', this.selectedImage);

    this.http.post<any>('http://localhost:5000/upload', formData).subscribe(
      (response) => {
        console.log(response.message);
        this.resetForm();
      },
      (error) => {
        console.error('Image upload failed:', error);
      }
    );
  }

  resetForm(): void {
    this.selectedImage = null;
    this.imageUrl = null;
  }
}

Step 5: Style the Image Upload Component (Optional)

You can style the image-upload.component.css file as per your application’s design to make it more visually appealing. So, Open the image-upload.component.css file and add some basic styling:

.image-upload-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 20px;
}

.image-preview {
  margin-top: 20px;
}

img {
  max-width: 100%;
  max-height: 300px;
}

Step 6: Integrate the Image Upload with Preview Component

Next, you need to import image upload component in app.component.html file.

So, Open the app.component.html file and add the following code:

<div class="app-container">
  <h1>Image Upload with Preview in Angular 16 Projects</h1>
  <app-image-upload></app-image-upload>
</div>

Step 7: Run the Application

Finally, you can run your application using Angular CLI:

ng serve

Visit http://localhost:4200 in your web browser to see the application running. Now you should have a functional image upload with preview feature in your Angular application!

Conclusion

Congratulations! You have successfully learned how to implement an image upload functionality with a preview feature in your Angular 16 application.

Recommended Tutorials

Jaspreet Singh Ghuman

Jaspreet Singh Ghuman

Jassweb.com/

Passionate Professional Blogger, Freelancer, WordPress Enthusiast, Digital Marketer, Web Developer, Server Operator, Networking Expert. Empowering online presence with diverse skills.

jassweb logo

Jassweb always keeps its services up-to-date with the latest trends in the market, providing its customers all over the world with high-end and easily extensible internet, intranet, and extranet products.

Contact
San Vito Al Tagliamento 33078
Pordenone Italy
Item added to cart.
0 items - 0.00
Open chat
Scan the code
Hello 👋
Can we help you?