日期:2014-05-19  浏览次数:20722 次

j2ee下载的实现

j2ee下载的实现 原文 http://code.google.com/p/helloj2ee/wiki/j2ee_download

所谓下载就是

  1. 向浏览器发个头信息,说明是下载文件,不是输出html文本,以及说明文件名,文件类型等
  2. 将下载内容发给浏览器

做法大概有这么几种:

  • 1、 tomcat本身对项目下的文件直接提供下载功能,在tomcat/conf/web.xml里有类似很多这种定义
? ? <mime-mapping>?
? ? ? ? <extension>zip</extension>?
? ? ? ? <mime-type>application/zip</mime-type>?
? ? </mime-mapping>

,那么如果你在你的项目下有个foo.zip,那么在浏览器里直接输入 http://localhost:8080/foo.zip ,这时tomcat就会执行上述的两个步骤。浏览器会得到头信息:有文件要下载,文件名是foo.zip,文件类型是application/zip,即可以使用支持zip格式文件的应用程序打开等头信息。

  • 2、 如果要下载的文件不是在你项目的目录下,比如在c:/测试.doc,那么你可以这么写程序,比如叫d.jsp。

?

?response.setContentType("application/msword");?
?response.setHeader("Content-Disposition", ?
?"attachment;filename=\"" + new String("测试.doc".getBytes("GBK"),"iso-8859-1") + "\"");?
?

?

FileInputStream in = new FileInputStream("c:/测试.doc");? ?byte[] bytes = new byte[1024];? ?while((m=in.read(bytes))!=-1){? ? ? ? ? response.getOutputStream().write(bytes, 0, m);? ?}? ?in.close();? ?

那么访问http://localhost:8080/d.jsp 的时候就会下载c:/测试.doc了。

  • 3、 下载还有个是否支持断点续传的问题,可以搜索
  • ?

response.setHeader(