我是一个提交页面,提交到一个SERVLET,然后输出下载
.......
fileName=fileName+".xls";
response.setContentType("application/file");
response.setHeader("Content-Disposition","filename="+fileName);
ServletOutputStream out = response.getOutputStream();
wb.write(out);
out.close();我以前这样设置过的啊,都可以!现在却直接是在浏览器里打开,我把fileName改个后缀
.xls1就OK了,是浏览器问题还是BUG问题,怎么解决,请教老鸟!
.......
fileName=fileName+".xls";
response.setContentType("application/file");
response.setHeader("Content-Disposition","filename="+fileName);
ServletOutputStream out = response.getOutputStream();
wb.write(out);
out.close();我以前这样设置过的啊,都可以!现在却直接是在浏览器里打开,我把fileName改个后缀
.xls1就OK了,是浏览器问题还是BUG问题,怎么解决,请教老鸟!
核心思想就是poi直接输出到jsp页面的out流中。
你参考一下看看<%@ page import="java.util.*,java.io.*,java.lang.*"%>
<% String queryName =(String)request.getAttribute("queryName"); String mimeType =(String)request.getAttribute("mimeType");
request.removeAttribute("mimeType");
if(mimeType==null || mimeType.equals("")) mimeType="APPLICATION/VND.MS-EXCEL";
queryName = new String(queryName.getBytes("gb2312"), "ISO8859-1");
try {
response.setContentType(mimeType);
response.setHeader("Content-Disposition","attachment; filename=\""+ queryName+ "\"");
//stream out file
ByteArrayOutputStream outputStream =(ByteArrayOutputStream)request.getAttribute("fileStream");
ServletOutputStream fOutputStream = response.getOutputStream();
fOutputStream.write(outputStream.toByteArray());
outputStream.close();
fOutputStream.close();
} catch (Exception exp){
System.out.println("Exception: "+exp.getMessage());
}%>
<jsp:forward page="blank.jsp"/>