在web服务器上实现下载其实很容易: 以前一直以为很神秘 其实一个最简单的语下载就几行代码,写个servlet就实现了。
当然文件如果固定那就只需要一个超链接 URL指向要被下载的文件,用户点击超链接就可以实现下载了。
如果是动态生成文件再下载 ,那就需要指定两个参数:
就是servlet必须告诉浏览器所response的不是一个简单的text/html文件,而是一个要保存在本地的下载文件,就需要
设置ContentType,这个Content-type就你需要下载的格式而定。
可以设置为:application/x-msdownload application/msexcel等:
以下载txt文件为例:
response.setContentType("application/x-msdownload");
还有要设置的就是header
response.setHeader("Content-Disposition","attachment;filename=test.txt");
设置完后拿到一个流写出数据:
ServletOutputStream sos = response.getOutputStream();
sos.write("Hello World".getBytes());
sos.close();
然后在web.xml设置下serlvet属性 启动服务访问下 一个简单的下载就完成了
这里说明下为什么不用getWriter()字符流 那是因为附件文件可以是各种类型的文件,
要将附件文件中的内容传送给客户端,以二进制方式处理最合适,也就是字节流,所以我们最好用outputSteam();