这是以前写论坛的下载时用的代码
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();
}