小议jsp页面中的下载功能
如果只是下在某个文件的话,直接用超连接就可以搞定但是用超链不安全,谁都可以访问,用程序当然好,可是把web不能访问的目录的文件下载给经过认证的访问者.
前面我写过一个把图片从数据库取出来推向页面的例子. 你只要把从数据库取的数据源改成从一个文件读到的数据源,然后把文档头
"image/gif" 改成"application/x-msdownload"就可以把一个向浏览器输出一个文件了.
file t_file = new java.io.file(sourcefilepathname); long l = t_file.length(); //文件长度 inputstream in = new fileinputstream (t_file); if(in != null) { string fs = t_file.getname(); response.reset(); response.setcontenttype("application/x-msdownload"); // string s = "attachment; filename="+fs; // response.setheader("content-disposition", s); //以上输出文件元信息 response.setcontentlength((int)l); //设置输入文件长度 byte[] b = new byte[2048]; int len = 0; while({len=in.read(b)) >0); { response.getoutputstream().write(b,0,len); //向浏览器输出\r } in.close(); //关闭文件输入流\r }
|