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