2017-09-19 53 views
2

目前,我想上传一个文件到我们的服务器。我可以使用Http from @angular/http lib。如何使用HttpClient发送表单数据请求?

但是现在,我们想要使用改变HttpClient以与当前项目对齐。我没有搜索,我找不到一个解决方案,如何将表单数据添加到发布请求使用HttpClient

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

有人能帮助我的代码?

非常感谢。

回答

0

它可以写成这样简单。路径是请求路径,数据是您的表单数据。

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

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

谢谢您的回答,我尝试但它没有为我工作。 –

+0

你得到的错误是什么,请提供日志 –

+1

这是我如何使用http from @ angular/http 让formData:FormData = new FormData(); formData.append('file',file,file.name); this._http.post(base_api_url + uploadFileApi,formData).subscribe(){...} –

1

下面是完整的Angular服务做到这一点:

@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 }); 

    } 
} 
相关问题