小议jsp页面中的下载功能(转)

小议jsp页面中的下载功能(转)[@more@]

如果只是下在某个文件的话,直接用超连接就可以搞定但是用超链不安全,谁都可以访问,用程序当然好,可是把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); //向浏览器输出

}

in.close(); //关闭文件输入流

}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8225414/viewspace-946014/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8225414/viewspace-946014/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值