我试图将浏览器输入文件作为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))
}
有人知道该怎么做吗?
谢谢
答案 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))
}