这是以前写论坛的下载时用的代码 

 

public void ProcessRequest(HttpContext context)
        {
            
string name = "d:\\abc.txt";
            
//System.IO.FileInfo aFile = new System.IO.FileInfo(name);
            
//string na = Path.GetFileName(name); 
            
//context.Response.Clear();
            
//context.Response.ClearHeaders();
            
//context.Response.BufferOutput = false;   
           
// context.Response.ContentType = "application/octet-stream";
            context.Response.AppendHeader("Content-disposition""attachment;filename=abc.txt");
           
// context.Response.AppendHeader("Content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(na, System.Text.Encoding.UTF8)); 
           
// context.Response.AddHeader("Content-Length",aFile.Length.ToString());
            context.Response.WriteFile(name);
            
//context.Response.Flush();
            
//context.Response.End();
        }

        
public bool IsReusable
        {
            
get
            {
                
return false;
            }
        }


 
private void OutPutFile(string filePath)
        {
            FileStream fs 
= File.OpenRead(Server.MapPath(filePath));
            BinaryReader br 
= new BinaryReader(fs);
            Byte[] fileData 
= new byte[fs.Length];
            br.Read(fileData, 
0, fileData.Length);
            Response.Clear();
            Response.ClearHeaders();
            Response.BufferOutput 
= false;  
            Response.ContentType 
= "application/force-download";
            Response.AddHeader(
"Content-Disposition:""attachment;filename=" + HttpUtility.UrlEncode(Path.GetFileName(filePath),System.Text.Encoding.UTF8));
            Response.AddHeader(
"Content-Length", fileData.Length.ToString());
            Response.BinaryWrite(fileData);
            Response.Flush();
            br.Close();
            fs.Close();
            Response.End();
        }

 


 

posted on 2010-04-18 17:30  路过秋天  阅读(1597)  评论(0编辑  收藏  举报
路过秋天