jsp 实现文件下载 java 实现文件下载 struts2 实现文件下载

来源:互联网 发布:新手护肤步骤知乎 编辑:程序博客网 时间:2024/05/01 06:19

===================jsp 页面 中的js代码================================

//点击某下载按钮调用该方法,参数根据自己的实际情况而定

function download(){
   var tableParam = param + "&sortId="+ sortId +"&sortState="+sortState;
   tableParam += '&t='+new Date().getTime();
   window.open("termBusiApp!download.ai2do?"+tableParam);
  }

 

===================java action 中的代码 ========================

/**
  * 数据导出返回文件流
  */
 public void download() {
  HttpServletResponse resp = ServletActionContext.getResponse();
        try {
          //导出的源文件
           File file = new File("d:/term.txt");
           // 默认导出文件名称
      String fileName = "是是是.txt";
            InputStream inStream = new FileInputStream(file);// 文件的存放路径
            // 设置输出的格式
            resp.reset();
            resp.setContentType("bin");
            resp.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(),"iso-8859-1"));
            resp.addHeader("Content-Length", "" + file.length());
            // 循环取出流中的数据
            byte[] b = new byte[1024];
            int len;
            while ((len = inStream.read(b)) > 0){
             resp.getOutputStream().write(b, 0, len);
            }
            inStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
 }

在以上action 方法中是指定了一个固定的文件进行示范导出,用户可以改写,可以根据实际情况获取前台传来的参数,然后调用自己的service、dao,然后将数据写到文件中,最后再读取文件流到response中,实现文件导出。