如何通过rest从angular2光盘中获取excel文件
我使用的是angular 2和Java背景,它们之间的通信是通过REST进行的。我要做的是在单击按钮时创建一些excel文件,然后在用户API中返回该文件 其余部分如下所示: @RequestMappingvalue=/some\u path/{someId},method=RequestMethod.GET,products=MediaType.APPLICATION\u OCTET\u STREAM\u VALUE 公共文件系统资源exportSomeData@PathVariable长someId,HttpServletResponse{ //…创建excel文件数据。。。 File File=新文件名; response.addHeaderFILE_名称、文件名; FileNameResource fsr=新FileNameResourcefile; 返回fsr; } 在剩余部分的角度返回中,调用工作正常: getFilepath:字符串{ 这个.authHTTP.get'some_path' .mapresponse=>{ 设blob=response['body']; 返回{ 数据:新Blob[Blob],{type:'application/octet stream'}, 文件名:response.headers.get'FILE\u NAME' } } .subscriberes=>saveAsres.data,res.filename }如何通过rest从angular2光盘中获取excel文件,excel,rest,angular,Excel,Rest,Angular,我使用的是angular 2和Java背景,它们之间的通信是通过REST进行的。我要做的是在单击按钮时创建一些excel文件,然后在用户API中返回该文件 其余部分如下所示: @RequestMappingvalue=/some\u path/{someId},method=RequestMethod.GET,products=MediaType.APPLICATION\u OCTET\u STREAM\u VALUE 公共文件系统资源exportSomeData@PathVariable长so
问题是我得到了这个文件,它包含数据,但它丢失了它的元数据。在单元格中显示一些问号字符,而不是excel格式。有人知道问题出在哪里吗?尝试将responseType设置为Blob并使用RC5 Blob响应类型:
getFile(path:String) {
this.autthHttp.get(`some_path', {responseType: ResponseContentType.Blob})
.map((response) => {
let blob = response.blob();
return {
data: new Blob([blob], {type: 'application/octet-stream'}),
filename: response.headers.get('FILE_NAME')
}
})
.subscribe(res => saveAs(res.data, res.filename))
}在RC5中,我试图更改let blob=response[''u body'];和data:new Blob[Blob],{type:'application/octet stream'},其中let Blob=response.Blob和data:Blob,但是我得到了一个异常,请求主体不是Blob或数组缓冲区。谢谢。我缺少部分{responseType:ResponseContentType.Blob}。现在它起作用了。