本文实例讲述了JSP下载服务器文件的方法。分享给大家供大家参考,具体如下:
<%@page import="java.io.FileInputStream"%> <%@page language="java" contentType="text/html; charset=UTF-8"%> <%@page import="com.ecc.emp.core.Context" %> <%@page import="java.io.File" %> <%@ include file="http://www.xxxx.com/head.jsp"%> <% boolean loadFlag = false; ServletOutputStream ou = null; FileInputStream fis = null; try{ Context context=(Context)request.getAttribute("context"); String accountFilePath = (String)context.getDataValue("accountFilePath"); //String accountFilePath ="E:/ComeBack/Acc_BOS_CM/WebContent/upload/product/1336873410414custormerStatement.txt"; //String accountFileName = (String)context.getDataValue("accountFileName"); String displayFileName = (String)context.getDataValue("displayFileName"); //String displayFileName ="custormerStatement.txt"; String fullPath =accountFilePath; response.reset(); response.setContentType("charset=UTF-8"); response.setContentType("text/HTML"); //response.setContentType("application/vnd.ms-excel"); String filename = new String(displayFileName.getBytes("gb2312"), "ISO8859-1"); response.setHeader("Content-Disposition","attachment; filename=" + filename); //解决HTTPS不能下载的问题 response.setHeader("Cache-Control","public"); ou = response.getOutputStream(); File file = new File(fullPath); fis = new FileInputStream(file); try { if (fis != null) { int filelen = fis.available(); byte a[] = new byte[filelen]; fis.read(a); ou.write(a); ou.flush(); } loadFlag=true; } catch (Exception e) { System.out.println("Excel is not exist!"); } out = pageContext.pushBody(); }catch(Exception e){ e.printStackTrace(); }finally{ try { fis.close(); ou.close(); ou = null; response.flushBuffer(); } catch (Exception e) { // TODO 自动生成 catch 块 e.printStackTrace(); } } %>
希望本文所述对大家JSP程序设计有所帮助。
关键字词: