Avatar ·

Angular 文件上传:如何正确发送文件到服务器并显示进度条?

大家好!我是 Angular(版本 15)和 TypeScript 的新手,一直搞不明白文件上传。我需要做一个表单,用户选择文件(图片或 PDF),然后将其发送到服务器并显示上传进度。 我尝试过使用普通的 FormData,但出了问题。以下是我当前的组件代码:
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-upload',
  template: `
    <input type="file" (change)="onFileSelected($event)">
    <button (click)="onUpload()">上传</button>
  `
})
export class UploadComponent {
  selectedFile: File | null = null;

  constructor(private http: HttpClient) {}

  onFileSelected(event: any) {
    this.selectedFile = event.target.files[0];
  }

  onUpload() {
    const formData = new FormData();
    formData.append('file', this.selectedFile!);
    this.http.post('/api/upload