如何使用HttpClient发送表单数据请求?

时间:2017-09-19 03:21:22

标签: angular

目前,我想将文件上传到我们的服务器。我可以使用@angular/http lib中的 Http 来完成此操作。

但是现在,我们希望使用 HttpClient 进行更改以与当前项目保持一致。我搜索过,我找不到如何使用 HttpClient 将表单数据添加到帖子请求的解决方案?

[更新]我用来通过http上传文件的代码 let formData: FormData = new FormData(); formData.append('file', file, file.name); this._http.post(base_api_url + uploadFileApi, formData)

有人可以帮我吗?

非常感谢。

2 个答案:

答案 0 :(得分:12)

以下是执行此操作的Angular服务:

import { Injectable } from '@angular/core';

@Injectable()
export class UploadService {

  constructor(private http: HttpClient) {}

  uploadFile(file: File): Observable<any> {

    const formData = new FormData();
    formData.append('file', file);

    const headers = new HttpHeaders({ 'enctype': 'multipart/form-data' });

    return this.http.post(apiUrl, formData, { headers: headers });

  }
}

答案 1 :(得分:0)

它可以写得这么简单。其中path是请求路径,data是表单数据。

 constructor(private httpClient: HttpClient) {
            this.httpTimeout = 90000;
            this.retryCount = 1;
    }

method(path: string, data: any) {
    this.httpClient.post(path, data).retry(retry).timeout(timeout);
}