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程序设计有所帮助。