2016-08-23 7 views
0

Java 배경과 함께 각도 2를 사용하고 있으며 그 사이의 통신은 REST를 통해 이루어집니다. 내가해야 할 일은 버튼 클릭시 Excel 파일을 만들고 사용자 API에서 해당 파일을 반환하는 것입니다. 이 데이터를 포함, 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)) } rest2를 통해 angular2의 디스크에서 파일을 추출하는 방법

문제는 내가 파일을 가지고 있다는 것입니다,하지만 손실 : (전화 확인을 작동 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; }

:

REST는 다음과 같습니다 그것은 메타 데이터입니다 (형식 대신 몇 가지 물음표 문자가 셀에서 잘 나타납니다). 누군가 문제가 될 수있는 것을 알고 있습니까?

+0

내가'블롭 = ( 응답)하게 변경하려고

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)) 

를} '_ 신체]; ' 및 '데이터 : 새로운 물방울 ([블롭] {형 '프로그램/octet-stream을'})' 와 은'블롭 = response.blob()을 보자' 및 '데이터 : 를 blob'하지만 그런 다음 예외가 생겼습니다. 요청 본문 BLOB 또는 배열 버퍼가 아닙니다. – Stojan

답변

8

시도는 블롭 및 RC5 블롭 응답 타입 사용할 responseType를 설정하려면 RC5에서

+0

고맙습니다. 나는'{responseType : ResponseContentType.Blob}'부분을 놓치고 있습니다. 이제 작동합니다. – Stojan

관련 문제