C# Response 下载_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > C# Response 下载

C# Response 下载

 2017/11/3 13:11:38  zs°舟山群岛  程序员俱乐部  我要评论(0)
  • 摘要://TransmitFile实现下载protectedvoidButton1_Click(objectsender,EventArgse){/*微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。代码如下:*/Response.ContentType="application/x-zip-compressed"
  • 标签:C# 下载

class="csharp comments">//TransmitFile实现下载 

    protected void Button1_Click(object sender, EventArgs e)               /*          微软为Response对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite          下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。          代码如下:          */              Response.ContentType = "application/x-zip-compressed"         string FileName = "test.doc"         //使用UTF-8对文件名进行编码          Response.AppendHeader("Content-Disposition""attachment;filename=\"" + HttpUtility.UrlEncode(FileName, System.Text.Encoding.UTF8) + "\"");          Response.ContentType = "application/octet-stream"         Response.AddHeader("Content-Disposition""attachment;filename=" + FileName);          string filename = Server.MapPath("../ReportTemplate/test.doc");          Response.TransmitFile(filename);               //WriteFile实现下载      protected void Button2_Click(object sender, EventArgs e)                /*          using System.IO;                   */          string fileName = "test.doc";//客户端保存的文件名          string filePath = Server.MapPath("../ReportTemplate/test.doc");//路径          FileInfo fileInfo = new FileInfo(filePath);          Response.Clear();          Response.ClearContent();          Response.ClearHeaders();          Response.AddHeader("Content-Disposition""attachment;filename=\"" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + "\"");          Response.AddHeader("Content-Length", fileInfo.Length.ToString());          Response.AddHeader("Content-Transfer-Encoding""binary");          Response.ContentType = "application/octet-stream"         Response.WriteFile(fileInfo.FullName);          Response.Flush();          Response.End();               //WriteFile分块下载      protected void Button3_Click(object sender, EventArgs e)               string fileName = "test.doc";//客户端保存的文件名          string filePath = Server.MapPath("../ReportTemplate/test.doc");//路径                  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, System.Text.Encoding.UTF8));              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 = "test.doc";//客户端保存的文件名          string filePath = Server.MapPath("../ReportTemplate/test.doc");//路径              //以字符流的形式下载文件          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();       }
发表评论
用户名: 匿名