我正在使用角度2与Java背景和他们之间的通信是通过REST。我必须做的是在button button上创建一些excel文件,然后在用户API中返回该文件。如何从角度2中的光盘通过休息获得excel文件
REST看起来是这样的: @RequestMapping(value = "/some_path/{someId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_OCTET_STREAM_VALUE) public FileSystemResource exportSomeData(@PathVariable long someId, HttpServletResponse response) { // ... create excel file data... File file = new File(fileName); response.addHeader("FILE_NAME", fileName); FileNameResource fsr = new FileNameResource(file); return fsr; }
在角(其余的回归,呼唤工程确定): getFile(path:String) { this.autthHttp.get(`some_path') .map((response) => { let blob = (response)['body']; return { data: new Blob([blob], {type: 'application/octet-stream'}), filename: response.headers.get('FILE_NAME') } }) .subscribe(res => saveAs(res.data, res.filename)) }
的问题是,我得到的文件,它包含的数据,但它失去了它是元数据(在单元格中显示一些问号字符,而不是格式良好的Excel)。有人知道可能是什么问题吗?
在RC5我试图改变 '让团块=(响应) '_体']; ' 和 '数据:新的斑点([BLOB],{类型: '应用/八位字节流'})' 与 '让团块= response.blob()' 和 '数据:blob' 但那么我得到了一个异常_请求正文不是blob或数组buffer_。 –
Stojan