Javaバックグラウンドで角度2を使用しています。それらの間の通信はREST経由です。私がしなければならないことは、ボタンをクリックしてExcelファイルを作成し、そのファイルをユーザーAPIに戻すことです。rest2経由でangular2のディスクから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; }
(RESTの復帰、コールはOK作品): 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)) }
問題は、それがデータを含んでいる、私はファイルを持っていることですが、それが失われましたそれはメタデータです(フォーマットではなく、疑問符文字をセル内でうまく表示できます)。誰かが何が問題になるかも知っていますか?
RC5 Iにおいて 'せBLOB =(応答)[ '_本体']を変更しようとしました。 'せBLOB = response.blob()' と 'データと' ' と'データ:新しいブロブ([BLOB]、{ 'アプリケーション/オクテットストリーム' タイプ}):blob' しかしそれから私は例外があります_リクエストボディBLOBまたは配列バッファではありません。 –
Stojan