解决方法
这是一个开始的工作示例:
HTML
<input #file type="file" multiple (change)="upload(file.files)" /> <span *ngIf="uploadProgress > 0 && uploadProgress < 100"> {{uploadProgress}}% </span>
打字稿
import { Component } from '@angular/core'; import { HttpClient,HttpRequest,HttpEventType,HttpResponse } from '@angular/common/http' @Component({ selector: 'files',templateUrl: './files.component.html',}) export class FilesComponent { public uploadProgress: number; constructor(private http: HttpClient) { } upload(files) { if (files.length === 0) return; const formData = new FormData(); for (let file of files) formData.append(file.name,file); const req = new HttpRequest('POST',`api/files`,formData,{ reportProgress: true,}); this.http.request(req).subscribe(event => { if (event.type === HttpEventType.UploadProgress) this.uploadProgress = Math.round(100 * event.loaded / event.total); else if (event instanceof HttpResponse) console.log('Files uploaded!'); }); } }
调节器
[HttpPost,DisableRequestSizeLimit,Route("api/files")] public async Task UploadFiles() { var files = Request.Form.Files; // now you have them }