usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;using System.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.IO;publicpartialclass_Default : System.Web.UI.Page{protected voidPage_Load(objectsender, EventArgs e){}//TransmitFile实现下载protectedvoidButton1_Click(objectsender, EventArgs e){Response.ContentType = "application/x-zip-compressed";Response.AddHeader("Content-Disposition", "attachment;filename=z.zip");stringfilename = Server.MapPath("DownLoad/z.zip");Response.TransmitFile(filename);}//WriteFile实现下载protected voidButton2_Click(objectsender, EventArgs e){stringfileName ="asd.txt";//客户端保存的文件名stringfilePath=Server.MapPath("DownLoad/aaa.txt");//路径 FileInfo fileInfo = newFileInfo(filePath);Response.Clear();Response.ClearContent();Response.ClearHeaders();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);Response.Flush();Response.End();} //WriteFile分块下载protectedvoidButton3_Click(objectsender, EventArgs e){stringfileName = "aaa.txt";//客户端保存的文件名stringfilePath = Server.MapPath("DownLoad/aaa.txt");//路径System.IO.FileInfo fileInfo = newSystem.IO.FileInfo(filePath);if(fileInfo.Exists == true){constlongChunkSize = 102400;//100K 每次读取文件,只读取100K,这样可以缓解服务器的压力byte[] buffer = newbyte[ChunkSize];Response.Clear();System.IO.FileStream iStream = System.IO.File.OpenRead(filePath);longdataLengthToRead = iStream.Length;//获取下载的文件总大小Response.ContentType = "application/octet-stream";Response.AddHeader("Content-Disposition", "attachment; filename="+ HttpUtility.UrlEncode(fileName));while(dataLengthToRead > 0 && Response.IsClientConnected){intlengthRead = iStream.Read(buffer, 0, Convert.ToInt32(ChunkSize));//读取的大小Response.OutputStream.Write(buffer, 0, lengthRead);Response.Flush();dataLengthToRead = dataLengthToRead - lengthRead;}Response.Close();}}//流方式下载protectedvoidButton4_Click(objectsender, EventArgs e){stringfileName = "aaa.txt";//客户端保存的文件名stringfilePath = Server.MapPath("DownLoad/aaa.txt");//路径//以字符流的形式下载文件FileStream fs = newFileStream(filePath, FileMode.Open);byte[] bytes = newbyte[(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();}} |
C # File Download Quartet method