JSP下载服务器文件的方法

前端技术 2023/09/03 JSP

本文实例讲述了JSP下载服务器文件的方法。分享给大家供大家参考,具体如下:

<%@page import=\"java.io.FileInputStream\"%>
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<%@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程序设计有所帮助。

本文地址:https://www.stayed.cn/item/6391

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。