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.