C#实现下载功能.doc_第1页
C#实现下载功能.doc_第2页
C#实现下载功能.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#实现下载功能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对象提供了一个新的方法TransmitFile来解决使用Response.BinaryWrite 下载超过400mb的文件时导致Aspnet_wp.exe进程回收而无法成功下载的问题。 代码如下: */ 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) /* using System.IO; */ 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 byteChunkSize; 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, att

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论