目前,我想将文件上传到我们的服务器。我可以使用@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)
有人可以帮我吗?
非常感谢。
答案 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);
}