用J 来实现文件下载功能的几种方式

文章作者 100test 发表时间 2007:09:06 13:32:25
来源 100Test.Com百考试题网


1.最直接最简单的,方式是把文件地址直接放到html页面的一个链接中。这样做的缺点是把文件在服务器上的路径暴露了,并且还无法对文件下载进行其它的控制(如权限)。这个就不写示例了。

2.在服务器端把文件转换成输出流,写入到response,以response把文件带到浏览器,由浏览器来提示用户是否愿意保存文件到本地。(示例如下)

<%

 response.setContentType(fileminitype).

 response.setHeader("Location",filename).

 response.setHeader("Cache-Control", "max-age="   cacheTime).

     //filename应该是编码后的(utf-8)

 response.setHeader("Content-Disposition", "attachment. filename="   filename). 

 response.setContentLength(filelength).

 OutputStream outputStream = response.getOutputStream().

 InputStream inputStream = new FileInputStream(filepath).

 byte[] buffer = new byte[1024].

 int i = -1.

 while ((i = inputStream.read(buffer)) != -1) {

  outputStream.write(buffer, 0, i).

  }

 outputStream.flush().

 outputStream.close().

 inputStream.close().

 outputStream = null.

      %>

3.既然是JSP的话,还有一种方式就是用Applet来实现文件的下载。不过客户首先得信任你的这个Applet小程序,由这个程序来接受由servlet发送来的数据流,并写入到本地。

servlet端示例

public void service(HttpServletRequest req, HttpServletResponse res)

            throws ServletException, IOException {

        res.setContentType(" text/plain ").

        OutputStream outputStream = null.

        try {

            outputStream = res.getOutputStream().

            //把文件路径为srcFile的文件写入outputStream中

            popFile(srcFile, outputStream)) .

        } catch (IOException e) {

            e.printStackTrace().    

     }

          }



相关文章


LINUX综合辅导:LPI资格认证考试的注意事项
综合辅导:让archlinux更动听-dmix多音流
综合辅导:对于Linux各项系统开机服务的功能简介
综合辅导:如何在Linuxco ole中直接显示中文
用J 来实现文件下载功能的几种方式
怎样用J martUpload实现文件上传攻略
Java中的文件与磁盘操作技术详细解析
用Java编写简单的UDP网络通信程序实例
河南大学生下基层3年内考研初试加10分
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛