我正在通過Servlet生成Excel文檔。當我將響應發送回客戶端(IE8)時,彈出「打開/保存」對話框,但要求用戶在採取措施前點擊兩次選擇。這在Firefox中不會發生。我不知道爲什麼會發生這種情況。以下是創建適當流的相關代碼。IE8要求在.xls文件上打開/保存兩次
result
包含Excel XML。
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秒鐘,工作得很好。它似乎只在立即點擊一個選項時詢問兩次。
似乎是IE的一個bug:http://support.microsoft.com/ default.aspx?scid = http://support.microsoft.com:80/support/kb/articles/q238/5/88.asp&NoWebContent = 1,http://forums.asp.net/t/273944.aspx/ 1 – dragon66
我發現了那些相同的參考文獻,但它們相當古老。我曾希望這可能是在過去的5年中得到修復的。 –