在Angular 7中使用FormData对象发送表单数据,可以通过以下步骤实现:
npm install @angular/common@7.0.0 @angular/compiler@7.0.0 @angular/core@7.0.0 @angular/forms@7.0.0 @angular/platform-browser@7.0.0 @angular/platform-browser-dynamic@7.0.0 @angular/router@7.0.0 @angular/http@7.0.0 rxjs@6.3.3 zone.js@0.8.26
file-upload.service.ts
:import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class FileUploadService {
constructor(private http: HttpClient) {}
uploadFile(file: File) {
const formData = new FormData();
formData.append('file', file);
return this.http.post('/api/upload', formData);
}
}
FileUploadService
服务来上传文件。在组件中注入FileUploadService
,并在需要上传文件的地方调用uploadFile
方法:import { Component } from '@angular/core';
import { FileUploadService } from './file-upload.service';
@Component({
selector: 'app-file-upload',
template: `
`
})
export class FileUploadComponent {
selectedFile: File;
constructor(private fileUploadService: FileUploadService) {}
onFileSelected(event) {
this.selectedFile = event.target.files[0];
}
upload() {
this.fileUploadService.uploadFile(this.selectedFile).subscribe(
response => {
console.log(response);
alert('File uploaded successfully');
},
error => {
console.log(error);
alert('File upload failed');
}
);
}
}
这样就可以在Angular 7中使用FormData对象来上传文件了。在上述代码中,FileUploadService
通过HttpClient
发送POST请求到/api/upload
接口,并将文件数据包含在FormData中。在组件中,用户可以选择文件,然后点击“Upload”按钮来触发上传操作。上传成功后,将会弹出一个成功的提示框,否则会弹出一个失败的提示框。