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 %>