本文共 3059 字,大约阅读时间需要 10 分钟。
C# code -
using System.Configuration; using System.Web.Security; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; public partial class _Default : System.Web.UI.Page protected void Page_Load( object sender, EventArgs e) { } protected void Button1_Click( object sender, EventArgs e) Response.ContentType = " application/x-zip-compressed " ; Response.AddHeader( " Content-Disposition " , " attachment;filename=z.zip " ); string filename = Server.MapPath( " DownLoad/z.zip " ); Response.TransmitFile(filename); protected void Button2_Click( object sender, EventArgs e) { string fileName = " asd.txt " ; // 客户端保存的文件名 string filePath = Server.MapPath( " DownLoad/aaa.txt " ); // 路径 FileInfo fileInfo = new FileInfo(filePath); Response.AddHeader( " Content-Disposition " , " attachment;filename= " + fileName); Response.AddHeader( " Content-Length " , fileInfo.Length.ToString()); Response.AddHeader( " Content-Transfer-Encoding " , " binary " ); Response.ContentType = " application/octet-stream " ; Response.ContentEncoding = System.Text.Encoding.GetEncoding( " gb2312 " ); Response.WriteFile(fileInfo.FullName); protected void Button3_Click( object sender, EventArgs e) string fileName = " aaa.txt " ; // 客户端保存的文件名 string filePath = Server.MapPath( " DownLoad/aaa.txt " ); // 路径 System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath); if (fileInfo.Exists == true ) const long ChunkSize = 102400 ; // 100K 每次读取文件,只读取100K,这样可以缓解服务器的压力 byte [] buffer = new byte [ChunkSize]; System.IO.FileStream iStream = System.IO.File.OpenRead(filePath); long dataLengthToRead = iStream.Length; // 获取下载的文件总大小 Response.ContentType = " application/octet-stream " ; Response.AddHeader( " Content-Disposition " , " attachment; filename= " + HttpUtility.UrlEncode(fileName)); while (dataLengthToRead > 0 && Response.IsClientConnected) int lengthRead = iStream.Read(buffer, 0 , Convert.ToInt32(ChunkSize)); // 读取的大小 Response.OutputStream.Write(buffer, 0 , lengthRead); Response.Flush(); dataLengthToRead = dataLengthToRead - lengthRead; protected void Button4_Click( object sender, EventArgs e) string fileName = " aaa.txt " ; // 客户端保存的文件名 string filePath = Server.MapPath( " DownLoad/aaa.txt " ); // 路径 FileStream fs = new FileStream(filePath, FileMode.Open); byte [] bytes = new byte [( int )fs.Length]; fs.Read(bytes, 0 , bytes.Length); fs.Close(); Response.ContentType = " application/octet-stream " ; Response.AddHeader( " Content-Disposition " , " attachment; filename= " + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); Response.BinaryWrite(bytes); Response.Flush(); Response.End(); |
转载于:https://www.cnblogs.com/sunshch/archive/2012/08/30/2663965.html