如题:
代码大致如下:
beat.getResponse().setCharacterEncoding("utf-8");
beat.getResponse().setContentType("application/x-download");
beat.getResponse().setHeader("Content-Disposition", "attachment;filename="+gbNm+"_"+DateUtil.DateFormat(new Date(), "yyyyMMdd")+".xls");
Workbook wb=orderAddressService.generteExcel(list);
ServletOutputStream out = getResponse().getOutputStream();
wb.write(out);
out.flush();
out.close(); 调试后发现,wb已经生成,在执行wb.write(out)时抛出异常,org.eclipse.jetty.io.EofException
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:911)
at org.eclipse.jetty.http.AbstractGenerator.flush(AbstractGenerator.java:433)
at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:90)
at org.eclipse.jetty.server.HttpConnection$Output.flush(HttpConnection.java:1145)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:173)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:107)
at org.apache.poi.poifs.storage.BigBlock.doWriteData(BigBlock.java:67)
at org.apache.poi.poifs.storage.DocumentBlock.writeData(DocumentBlock.java:195)
at org.apache.poi.poifs.storage.BigBlock.writeBlocks(BigBlock.java:98)
at org.apache.poi.poifs.storage.DocumentBlock.writeBlocks(DocumentBlock.java:34)
at org.apache.poi.poifs.filesystem.POIFSDocument$BigBlockStore.writeBlocks(POIFSDocument.java:547)
at org.apache.poi.poifs.filesystem.POIFSDocument.writeBlocks(POIFSDocument.java:303)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.writeFilesystem(POIFSFileSystem.java:402)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1177)
在其他浏览器中都正常,请问有人了解这是怎么回事吗?
代码大致如下:
beat.getResponse().setCharacterEncoding("utf-8");
beat.getResponse().setContentType("application/x-download");
beat.getResponse().setHeader("Content-Disposition", "attachment;filename="+gbNm+"_"+DateUtil.DateFormat(new Date(), "yyyyMMdd")+".xls");
Workbook wb=orderAddressService.generteExcel(list);
ServletOutputStream out = getResponse().getOutputStream();
wb.write(out);
out.flush();
out.close(); 调试后发现,wb已经生成,在执行wb.write(out)时抛出异常,org.eclipse.jetty.io.EofException
at org.eclipse.jetty.http.HttpGenerator.flushBuffer(HttpGenerator.java:911)
at org.eclipse.jetty.http.AbstractGenerator.flush(AbstractGenerator.java:433)
at org.eclipse.jetty.server.HttpOutput.flush(HttpOutput.java:90)
at org.eclipse.jetty.server.HttpConnection$Output.flush(HttpConnection.java:1145)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:173)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:107)
at org.apache.poi.poifs.storage.BigBlock.doWriteData(BigBlock.java:67)
at org.apache.poi.poifs.storage.DocumentBlock.writeData(DocumentBlock.java:195)
at org.apache.poi.poifs.storage.BigBlock.writeBlocks(BigBlock.java:98)
at org.apache.poi.poifs.storage.DocumentBlock.writeBlocks(DocumentBlock.java:34)
at org.apache.poi.poifs.filesystem.POIFSDocument$BigBlockStore.writeBlocks(POIFSDocument.java:547)
at org.apache.poi.poifs.filesystem.POIFSDocument.writeBlocks(POIFSDocument.java:303)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.writeFilesystem(POIFSFileSystem.java:402)
at org.apache.poi.hssf.usermodel.HSSFWorkbook.write(HSSFWorkbook.java:1177)
在其他浏览器中都正常,请问有人了解这是怎么回事吗?
谢谢clarck_913,不行哟,和编码应该没有关系吧
InputStream fis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset(); // 浏览器区分
response.setContentType("application/octet-stream;charset=UTF-8");
response.setHeader("Content-disposition", "attachment;filename="
+ strFileName);
response.addHeader("Cache-Control", "no-cache");
OutputStream fos = new BufferedOutputStream(response.getOutputStream()); //
fos.write(buffer);
fos.flush();
fos.close();
下载时,没有被迅雷拦截。而且这种问题只是在IE6下出现,在IE8和FF下都很正常