0

フレームワークをプレイするのは初めてです。私は、再生アプリケーションがデータウェアハウスから結果セットを取得してクライアントに返すシナリオを持っています。私はByteArrayOutputStreamと チャンク転送エンコーディングを使用して、作業を達成する作業コードを持っています。私は結果セットからExcelブックを構築し、file.But問題はByteArrayOutputStreamがメモリを使用することであるとして、それを書くためにByteArrayOutputStreamを使用サーバーメモリを使用せずにPlayフレームワーク内の動的結果セットからExcelファイルをダウンロードしてダウンロードする方法

val responseStream: java.io.ByteArrayOutputStream = new ByteArrayOutputStream() 


val sheetOne = Workbook { 

    ... 

} 

val workbookImpure = new WorkbookImpure(sheetOne) 
workbookImpure.saveToStream(responseStream) 



Ok.chunked(
    Enumerator(responseStream.toByteArray).andThen(Enumerator.eof) 
).as("application/vnd.ms-excel").withHeaders("Content-Disposition" -> s"attachment; filename=*filename*.xls")  

、以下のとおりです。

メモリを使用せずに(Ok.chunked()を使用して)ダウンロード用のファイルをレンダリングする方法がプレーフレームワークにあるかどうかを知りたいと思います。

ありがとうございました。

答えて

0

技術的にはすべてメモリを使用しますが、一部のソリューションではそれ以外のものを使用しません。したがって、Akka Streamsを使用するようにしてください。そうすれば、メモリにファイル全体を構築せずにバイトをクライアントに直接渡すことができます。

関連する問題