我在jsp中做了一个excel导出的按纽,点机后回弹出一个对话框,可以直接打开,或者保存,保存没有问题,打开就回报找不到文件.
<%!
private void setResponse(HttpServletResponse response,String mime,String name,String ext){
response.setContentType(mime+";charset=gbk");
if(name!=null){
StringBuffer contentDisposition = new StringBuffer("\"attachment; filename=\""); contentDisposition.append(name).append(ext);
response.setHeader("Content-disposition",contentDisposition.toString());
}
}
%><%
setResponse(response,"text/plain","downkm2yyksqd",".xls");
try {
in=new FileInputStream(fileName);
outPutStream=response.getOutputStream();
int b;
while((b=in.read())!=-1){
outPutStream.write(b);
}
in.close();
outPutStream.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}%>
<%!
private void setResponse(HttpServletResponse response,String mime,String name,String ext){
response.setContentType(mime+";charset=gbk");
if(name!=null){
StringBuffer contentDisposition = new StringBuffer("\"attachment; filename=\""); contentDisposition.append(name).append(ext);
response.setHeader("Content-disposition",contentDisposition.toString());
}
}
%><%
setResponse(response,"text/plain","downkm2yyksqd",".xls");
try {
in=new FileInputStream(fileName);
outPutStream=response.getOutputStream();
int b;
while((b=in.read())!=-1){
outPutStream.write(b);
}
in.close();
outPutStream.flush();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}%>
万分感激啊~1
setResponse(response,"application/octet-stream","downkm2yyksqd",".xls");
如果文件名是中文,注意转化编码