Angular文件上传示例

时间:2023-05-12 17:44:49

以下为Angular的文件上传示例,分为三个步骤。

步骤一、创建HTML模板 (file-upload.component.html)

简单的创建一个类型为file的input标签,input上添加change事件,用来监控文件的选择。

<div class="form-group">
<label for="file">Choose File</label>
<input type="file"

(change)="handleFileInput($event.target.files)">
</div>

步骤二:在TypeScript文件里添加文件上传的处理 (file-upload.component.ts)

定义一个变量用于存放选择的文件:

fileToUpload: File = null;

新建chang事件的处理函数:

handleFileInput(files: FileList) {

this.fileToUpload = files.item(0);

}

如果要处理多文件选择,则可以遍历此文件数组。 现在通过调用file-upload.service创建文件上传功能:

uploadFileToActivity() {
this.fileUploadService.postFile(this.fileToUpload).subscribe(data => {
// 上传成功处理
}, error => {
console.log(error);
});
}

步骤三、文件上传服务 (file-upload.service.ts)

通过POST方法上传文件,使用FormData,这样就可以将文件使用http请求。

postFile(fileToUpload: File): Observable<boolean> {
const endpoint = 'your-destination-url';
const formData: FormData = new FormData();
formData.append('fileKey', fileToUpload, fileToUpload.name);
return this.httpClient
.post(endpoint, formData, { headers: yourHeadersConfig })
.map(() => { return true; })
.catch((e) => this.handleError(e));
}

到此,一个简单使用的文件上传就实现了。