using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;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){}//TransmitFile实现下载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);}//WriteFile实现下载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.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分块下载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];Response.Clear();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;}Response.Close();}}//流方式下载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();}}转自:http://www.hello-code.com/blog/asp.net/201312/2414.html
原文:http://www.cnblogs.com/shangshen/p/3532708.html