点击按钮直接下载文件(隐藏文件路径)

在ASP.NET中,有两个控件可以提供客户下载服务器端的文件:HyperLink控件和LinkButton控件(还没用过),HyperLink控件这个控件只能通过相对路径找到要下载的文件,而且更糟糕的是暴露了文件在服务器中的路径,可能会引出很多麻烦。
这里我们通过设置Http的Header来实现客户端下载的功能。这种方法不用打开一个新的IE窗口,Client端也看不到文件的路径,比较完美的实现了我想要的功能。现贴出代码,大家分享一下
FileStream fileStream = new  FileStream( " D:\\documents\\test.doc " ,FileMode.Open); 
long  fileSize  =  fileStream.Length; 
Context.Response.ContentType
= " application/octet-stream "
// 中文文件名需要UTF8编码
Context.Response.AddHeader( " Content-Disposition " , " attachment; filename=\ ""  + HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) +  " \ "" ); 
Context.Response.AddHeader(
" Content-Length " ,fileSize.ToString()); 
byte [] fileBuffer = new   byte [fileSize]; 
fileStream.Read(fileBuffer, 
0 , ( int )fileSize);
fileStream.Close();
Context.Response.BinaryWrite(fileBuffer); 
Context.Response.End();

转载于:https://www.cnblogs.com/raymond19840709/archive/2007/10/26/938716.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值