分享

利用RequestDispatcher实现文件下载,支持下载工具

 WindySky 2008-12-15
这篇文章同http://blog.csdn.net/sunyujia/archive/2008/03/26/2221442.aspx之所以又发布了一遍,是因为csdn的博客系统经常把上面那篇文章删掉,我也不知道为什么,每次修改的时候,内容都会为空,应该是bug,有点无语. 
一个好用的下载文件的实现方法,好多朋友喜欢自己控制输出流来实现下载,但是那种方法非常容易出问题,而且不能使用下载工具进行下载,利用这种方式还可以使用下载工具进行下载,也不用担心输出流有问题,因为是web容器控制的, jsp文件只有两个参数,一个是下载对话框提示要保存的文件名,一个是文件做在服务器上面的相对路径,点击下载后页面不仅不会跳转,还会弹出文件保存对话框,还支持目标另存为或使用下载工具进行下载. <a herf='X.jsp?fileName=a.doc&filePath=x/a.doc'>点击下载</a>
view plaincopy to clipboardprint?
<%  
 
      String filePath = "/"+request.getParameter("path");  
 
      String fileName = request.getParameter("name");  
 
      if(fileName!=null&&filePath!=null){  
 
          response.setContentType("application/x-download");  
 
          response.addHeader("Content-Disposition","attachment;filename=" + java.net.URLEncoder.encode(fileName,"UTF-8"));  
 
          try{  
 
              out.clear();  
 
              out=pageContext.pushBody();   
 
          }catch(Throwable e){  
 
              e.printStackTrace();  
 
          }  
 
          try{  
 
              RequestDispatcher dis = application.getRequestDispatcher(filePath);  
 
              dis.forward(request,response);  
 
          }catch(Throwable e){  
 
              e.printStackTrace();  
 
          }finally{  
 
              response.flushBuffer();  
 
          }  
 
      }  
 
%> 
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多