使用Angular HttpClient将原始二进制数据作为HttpParam发送

时间:2018-10-18 16:44:07

标签: angular httpclient

我试图将浏览器输入文件作为HttpParams之一发送,但不作为[目标文件]发送,我需要将其作为具有应用程序/八位字节流类型的原始二进制(二进制)。 第二个参数应该是字符串。 示例:

sendFile(options):Observable<HttpResponse<any>>{
  let prms = new HttpParams();
  prms = prms.append('file', options.file);
  prms = prms.append('format', options.format);
  return this.http.post(url,prms,{
    observe: 'response'
  }).map(data => {
    return data;
  },error => Observable.throw(error))
}

有人知道该怎么做吗?

谢谢

2 个答案:

答案 0 :(得分:0)

从Angular 5开始,在HttpParams中,只能将字符串作为值。因此,对于第一个参数,您将不得不将其转换为字符串。要将其转换为字符串,请遵循以下Link

答案 1 :(得分:0)

好吧,有人碰到类似问题时,您只需要使用FormData而不是HttpParams:

sendFile(options):Observable<HttpResponse<any>>{
   let formData = new FormData();
   formData.append('importFile', options.file);
   formData.append('format', options.format);
   return this.http.post(url,formData,{
     observe: 'response'
   }).map(data => {
     return data;
   },error => Observable.throw(error))
}