JSP下载服务器文件的方法
本文实例讲述了JSP下载服务器文件的方法。分享给大家供大家参考,具体如下:
<%@pageimport="java.io.FileInputStream"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%>
<%@pageimport="com.ecc.emp.core.Context"%>
<%@pageimport="java.io.File"%>
<%@includefile="http://www.xxxx.com/head.jsp"%>
<%
booleanloadFlag=false;
ServletOutputStreamou=null;
FileInputStreamfis=null;
try{
Contextcontext=(Context)request.getAttribute("context");
StringaccountFilePath=(String)context.getDataValue("accountFilePath");
//StringaccountFilePath="E:/ComeBack/Acc_BOS_CM/WebContent/upload/product/1336873410414custormerStatement.txt";
//StringaccountFileName=(String)context.getDataValue("accountFileName");
StringdisplayFileName=(String)context.getDataValue("displayFileName");
//StringdisplayFileName="custormerStatement.txt";
StringfullPath=accountFilePath;
response.reset();
response.setContentType("charset=UTF-8");
response.setContentType("text/HTML");
//response.setContentType("application/vnd.ms-excel");
Stringfilename=newString(displayFileName.getBytes("gb2312"),"ISO8859-1");
response.setHeader("Content-Disposition","attachment;filename="+filename);
//解决HTTPS不能下载的问题
response.setHeader("Cache-Control","public");
ou=response.getOutputStream();
Filefile=newFile(fullPath);
fis=newFileInputStream(file);
try{
if(fis!=null){
intfilelen=fis.available();
bytea[]=newbyte[filelen];
fis.read(a);
ou.write(a);
ou.flush();
}
loadFlag=true;
}catch(Exceptione){
System.out.println("Excelisnotexist!");
}
out=pageContext.pushBody();
}catch(Exceptione){
e.printStackTrace();
}finally{
try{
fis.close();
ou.close();
ou=null;
response.flushBuffer();
}catch(Exceptione){
//TODO自动生成catch块
e.printStackTrace();
}
}
%>
希望本文所述对大家JSP程序设计有所帮助。