本文作者:乐字节-坑王老薛
文件下载的方式
- 超链接下载
- 后台实现下载
案例实操
超链接下载
当我们在 HTML 或 JSP 页面中使用标签时,原意是希望能够进行跳转,但当超链接遇到浏览器不识别的动态网页时则会自动下载。如果浏览器遇到能够直接显示的资源,浏览器就会默认显示出来,比如 txt,png,jpg 等。当然我们也可以通过 download 属性规定浏览器进行下载。但有些浏览器并不支持。
默认下载
<a href="upload/abc.zip">超链接下载</a>
指定 download 属性下载
<a href="upload/abc.txt" download="abcdef.txt">超链接下载</a>
这里,download 也可以不写任何信息,会自动使用默认文件名。这样当用户打开浏览器点击链接的时候就会直接下载文件。
后台实现下载
Step1:需要通过 HttpServletResponse.setContentType
方法设置 Content-type 头字段的值,这样浏览器才能够使用某种方式或激活某个程序来处理相应 MIME 类型的数据,例 如 ”application/octet-stream” 或 ”application/x-msdownload” 等
Step2:需要通过 HttpServletResponse.setHeader
方法设置 Content-Disposition 头的值为”attachment;filename=文件名”,filename提供了文件下载时的一个默认文件名
Step3:读取下载文件,调用 HttpServletResponse.getOutputStream
方法返回的OutputStream对象来向客户端写入附件内容。
public class DownLoadServlet extends HttpServlet {