文件下载原理

本文记录Java学习过程中遇到的文件下载原理~

对于文件下载,我们并不陌生,因为通常在上网时所下载的图片、文档和影片等都是文件下载的范畴。现在很多网站都提供了下载各类资源的功能,因此在学习Web开发过程中,有必要学习文件下载的实现方式。

实现文件下载功能比较简单,通常情况下,不需要使用第三方组件实现,而是直接使用Servlet类和输出/输出流实现。与访问服务器文件不同的是,要实现文件的下载,不仅需要指定文件的路径,还需要在HTTP协议中设置两个响应消息头,具体如下:

//设定接收程序处理数据的方式
Content-Disposition: attachment; filename =

//设定实体内容的MIME类型
Content-Type: application/x-msdownload

浏览器通常会直接处理响应的实体内容,需要在HTTP响应消息中设置两个响应消息头字段,用来指定接收程序处理数据内容的方式为下载方式。当单击“下载”超链接时,系统将请求提交到对应的Servlet。在该Servlet中,首先获取下载文件的地址,并根据该地址创建文件字节输入流,然后通过该流读取下载文件内容,最后将读取的内容通过输出流写到目标文件中。

标签: none