使用数据流下载文件

本文介绍了一种在ASP.NET中实现文件下载的方法。通过获取服务器上的文件路径,并设置HTTP响应头来触发浏览器的文件下载对话框,实现了从服务器下载文件到客户端的功能。此方法包括了对文件不存在情况的处理。
摘要由CSDN通过智能技术生成

 

None.gif private   void  DownloadFile() 
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {     
InBlock.gif  
string path = Server.MapPath(Request.Params["File"]);
InBlock.gif      
//string path = this.ApplicationRootPath + objNetDisk_Resource.ResURL;
InBlock.gif

InBlock.gif      
if(!File.Exists(path)) 
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif
InBlock.gif       
// 文件没有找到
InBlock.gif       
//Page.Response.Write ("文件不存在") ; 
InBlock.gif
       this.AlertMessage("下载文件不存在!","ViewMusic.aspx?FileID="+Request.QueryString["FileID"].ToString());
InBlock.gif       
//       return; 
ExpandedSubBlockEnd.gif
      }

InBlock.gif      
else
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif       System.IO.FileInfo file 
= new System.IO.FileInfo(path);      
InBlock.gif
InBlock.gif       
// clear the current output content from the buffer
InBlock.gif
       Response.Clear();
InBlock.gif       
// add the header that specifies the default filename for the Download/SaveAs dialog
InBlock.gif
       Response.AddHeader("Content-Disposition""attachment; filename=" + HttpUtility.UrlEncode(file.Name,System.Text.Encoding.UTF8 ));
InBlock.gif       
// add the header that specifies the file size, so that the browser
InBlock.gif       
// can show the download progress
InBlock.gif
       Response.AddHeader("Content-Length", file.Length.ToString());
InBlock.gif       
// specify that the response is a stream that cannot be read by the
InBlock.gif       
// client and must be downloaded
InBlock.gif
       Response.ContentType = "application/octet-stream";
InBlock.gif       
// send the file stream to the client
InBlock.gif
       Response.WriteFile(file.FullName);
InBlock.gif       
// stop the execution of this page
InBlock.gif
       Response.End();
ExpandedSubBlockEnd.gif    }

ExpandedBlockEnd.gif}

None.gif

转载于:https://www.cnblogs.com/RedStarLiu/archive/2006/03/05/343190.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值