jsp中实现点击文件名称完成下载

 

1.文件名称添加点击事件

 
<a href="javascript:void(0);" id="wjm"  onclick="wjxz();" style="cursor:pointer;text-decoration:underline;color:blue;" title="文件名" >
  <
span class="detailSpan">文件名</span>
</
a>

<!-- 这里加了样式:1.cursor:pointer;(当把鼠标放上后,显示为小手),2.text-decoration:underline;(文件名下有下划线),3.color:blue;(文件名颜色为蓝色)-->

2.点击文件名触发的函数

 获取文件的绝对路径和文件名称,并作为参数传递到下载的jsp中。
/**
 * 文件下载
 */
function wjxz(){
    var path = $("#wjlj").val();
    var wjm = $("#wjm").attr('title');
    var url="wjxz.jsp?path="+path+"&wjm="+wjm;
    window.open(url);
}

3.复制该路径下的文件,完成下载

 1 jsp中引入java代码
 2 <%
 3     out.clear();
 4     out = pageContext.pushBody();
 5     response.setContentType("application/x-msdownload");
 6     String wjm  = RequestUtils.getParam(request, "wjm");
 7     String path = RequestUtils.getParam(request, "path");
 8     response.addHeader("Content-Disposition","attachment;fileName="+CommFunction.toUtf8String(wjm));
 9     OutputStream os = response.getOutputStream(); 
10     FileInputStream fis = new FileInputStream(path); 
11     try{
12         byte[] b = new byte[1024]; 
13         int m = 0;
14         while ( (m = fis.read(b)) > 0 ){ 
15             os.write(b, 0, m); //写文件
16         } 
17         fis.close(); 
18         os.flush(); 
19         os.close(); 
20     }
21     catch(Exception e){
22         fis.close();
23         os.flush();
24         os.close();
25     }
26     
27 %>

 

 
posted @ 2017-07-03 16:30  见仙于毫末  Views(8924)  Comments(2Edit  收藏  举报
TOP