struts2下载文件(extjs)

前台

window.open('downFileAction?fileName='+result.fileName);

 

 

// 下载文件
 @Action(value = "downFileAction")//, results = { @Result(name = "success", type = "stream") })
 public void downFile() {

  BufferedInputStream bis = null;
  BufferedOutputStream bos = null;
  OutputStream os = null;
  InputStream is = null;
  String filePath = this.application.getRealPath("root");    //得到项目的web路径
 
   try
         {
          File downloadFile = new File(filePath, this.fileName);
          is = new FileInputStream(downloadFile);
          bis = new BufferedInputStream(is);
          os = response.getOutputStream();
          bos = new BufferedOutputStream(os);
  
             this.response.reset();
             this.response.setCharacterEncoding("utf-8");
             this.response.setContentType("application/octet-stream");//文件类型contenttype
             this.response.setHeader("Content-Disposition","attachment; filename=" + fileName);  //关键部分,打开一个下载框
            
             int bytesRead = 0;
          byte[] buffer = new byte[8192];
         
          while((bytesRead = bis.read(buffer,0,8192)) != -1)
          {
           bos.write(buffer, 0, bytesRead);
          }
          bos.flush();  
          is.close();
          bis.close();
          os.close();
          bos.close();
         }
         catch(Exception e){
          e.printStackTrace();
         }
   
 }

 

 

 

 

// 下载文件
 @Action(value = "downFileAction", results = { @Result(name = "success", type = "stream",
   params = {"contentType", "application/octet-stream", "inputName", "xlsInputStream",
   "contentDisposition", "filename=\"a.xls\""}) })
 public String downFile() {

  String filePath = this.application.getRealPath("root");
  File downloadFile = new File(filePath, this.fileName);
  try {
   this.xlsInputStream = new FileInputStream(downloadFile);
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  }
  
  return this.SUCCESS;   
 }

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值