4

RichFacesデータテーブルからデータをエクスポートしたいデータテーブルのデータからoutputStreamを作成しました。次に、このOutputStreamをブラウザに送信して保存します。これどうやってするの?

FileOutputStream stream = new FileOutputStream(new File(PATH));

OutputStream out = myMthodToCreateOutPutStream();

outこれをブラウザ に保存する方法を説明します。

4

1 に答える 1

12

データをどこから読み取っているのかが明確ではありません。データを読み取るには、InputStreamを作成する必要があります。

次に、最初に応答ヘッダーをに設定する必要があります

HttpServletResponse.setHeader("Content-Disposition", "attachment; filename=datafile.xls");

必要なファイル名を使用してください。

次に、mime-typeを設定します。

response.setContentType("application/vnd.ms-excel");

必要なmimeタイプを使用してください。

次に、応答オブジェクトを使用してその出力ストリームを取得する必要があります-

OutputStream outStream = response.getOutputStream();

今それに書いてください:

byte[] buf = new byte[4096];
int len = -1;

//Write the file contents to the servlet response
//Using a buffer of 4kb (configurable). This can be
//optimized based on web server and app server
//properties
while ((len = inStream.read(buf)) != -1) {
    outStream.write(buf, 0, len);
}

outStream.flush();
outStream.close();
于 2012-08-02T07:14:29.620 に答える