私はWebプロジェクトで作業しています。私はSpring BootとAngular 2を使います。私はCSVファイルを作成し、このファイルをサーバからクライアントPCにダウンロードしたいと思います。 Apache Poiを使ってCSVファイルを作成します。 「CSVをエクスポート」ボタンをクリックすると、フロントエンドからバックエンドにサービス経由で渡すことができ、CSVファイルをサーバ上に正常に作成できます。ここではサービスコードは次のとおりです。作成したCSVファイルをブラウザがダウンロードしない
exportCSVFileTest(parameter: string): Observable<any> {
return this.httpService.post(super.getAddrApi() + parameter , null)
.catch(err => {
if (!err.status) {
err = {
status: Observable.throw(401)
};
}
return Observable.throw(err);
});
}
私はこのサービスを使用した後、私は、サーバー上のCSVファイルを作成し、私は、サーバーからクライアントのPC上でこのファイルをダウンロードしよう:そのIドン後
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition",
"attachment;filename=" + file.getName());
FileInputStream is = new FileInputStream(file);
ServletOutputStream out = response.getOutputStream();
byte[] outputByte = new byte[4096];
while(is.read(outputByte, 0, 4096) != -1)
{
out.write(outputByte, 0, 4096);
}
is.close();
out.flush();
out.close();
」何かエラーが発生します。すべてがうまくいくように見えますが、ファイルのアップロードプロセスに表示されるウィンドウは表示されません。さまざまな方法を試しました。たとえば、コンテンツタイプをapplication/csv
またはtext/csv
に設定しました。そして、私は 'OutputStream'、 'response.getWriter().write()
'を試してみましたが、何が間違っていますか?
答えとして受け入れられるようにしてください – Carlos