下载功能这个不用多说吧,就算是以前没有开发过,用过应该是肯定的,如果下载附件这样的功能都没有使用过几乎是难以想象的,下面介绍一下利用java结合javascript实现的附件下载功能,希望能够给需要的朋友带来一定的帮助,实现过程如下:

一.java后台代码:
   [ bootstrap ] 运行代码    下载代码
<script>
@RequestMapping(value = "download.html", method = RequestMethod.GET) 
public void download(String resourceid, HttpServletRequest request, HttpServletResponse response) { 
  response.setContentType("charset=UTF-8"); 
  File file = new File(path); 
  response.setHeader("Content-Disposition", "attachment; filename=a"); 
  BufferedInputStream bis = null; 
  BufferedOutputStream bos = null; 
  OutputStream fos = null; 
  InputStream fis = null; 
  try { 
    fis = new FileInputStream(file.getAbsolutePath()); 
    bis = new BufferedInputStream(fis); 
    fos = response.getOutputStream(); 
    bos = new BufferedOutputStream(fos); 
    int bytesRead = 0; 
    byte[] buffer = new byte[5 * 1024]; 
    while ((bytesRead = bis.read(buffer)) != -1) { 
      bos.write(buffer, 0, bytesRead); 
    } 
    bos.flush(); 
  }
  catch(E e){ }
  finally { 
    try { 
      bis.close(); 
      bos.close(); 
      fos.close(); 
      fis.close(); 
    } 
    catch (IOExcepti[url=]2[/url]on e) { 
      e.printStackTrace(); 
    } 
  } 
}
</script>
上面是java代码部分,当然这里不是重点,这是后台程序人员的事情,当然如果前后台都会那就更好了。

这个时候如果我们再前端要进行附近下载请求这个文件,服务器先找出文件,设置响应头,然后通过流输出到浏览器端。

浏览器在头中发现该响应的主体是流文件,则自动会调用另存为的窗口,让用户保存下载,实现原理如下:

设置Content-Disposition属性值,它是MIME协议的扩展,用于指示如何让客户端显示附件的文件,属性值可以有两个:
   [ bootstrap ] 运行代码    下载代码
<script>
inline //在线打开
attachment //作为附件下载
</script>
在我们的需求中,需要将属性值设置为attachment。

上面分析的是关于java后台的相关设置,下面介绍一下js前端的设置。

二.前台相关代码:下面是前端请求的几种常用方式:

1.form表单方式:
   [ bootstrap ] 运行代码    下载代码
<script>
<form action='download.html' method='post'> 
<input type='submit'/> 
</form>
</script>
2.iframe方式:
   [ bootstrap ] 运行代码    下载代码
<script>
var iframe = "<iframe style='display:none' src='download.html'></iframe>"
body.append(iframe);
</script>
3.window.open()方式:
   [ bootstrap ] 运行代码    下载代码
<script>
window.open("download.html");
</script>

代码描述:js其他后台语言 附件功能。js其他后台语言附件功能代码下载



114 151



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册



×
×
51前端

注册

×
绑定手机

请绑定手机号,在继续操作

×
单次下载支付

应付金额:279

支付完成后,回到下载页面,在进行下载

官方QQ群
意见反馈
qq群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到