サーブレットを介してExcelドキュメントを生成しています。応答をクライアント(IE8)に返送すると、[開く/保存]ダイアログが表示されますが、ユーザーはアクションを実行する前に選択肢を2回クリックする必要があります。これはFirefoxでは起こりません。なぜこれが起こっているのか分かりません。以下は、適切なストリームを作成する関連コードです。
result
ExcelXMLが含まれています。
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment;filename=TestFile.xls");
InputStream in = new ByteArrayInputStream(result.toString().getBytes("UTF-8"));
ServletOutputStream out = response.getOutputStream();
try
{
byte[] outputByte = new byte[4096];
while(in.read(outputByte, 0, 4096) != -1)
out.write(outputByte, 0, 4096);
}
finally
{
in.close();
out.flush();
out.close();
}
編集 オプションをクリックする前に5秒以上待つことは問題なく機能することに気づきました。オプションをすぐにクリックすると、2回しか尋ねられないようです。