发布于 4年前

Angular文件上传示例

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

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

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

<div class="form-group">
    <label for="file">Choose File</label>
    <input type="file"
           id="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));
}

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

©2020 edoou.com   京ICP备16001874号-3