asp.net中文件下载功能的实例代码

 更新时间:2013年04月16日 10:32:40   作者:  
asp.net中文件下载功能的实例代码,需要的朋友可以参考一下

复制代码 代码如下:

//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/aaa.zip");
Response.TransmitFile(filename);
}

//WriteFile实现下载
protected void Button2_Click(object sender, EventArgs e)
{


string fileName ="aaa.zip";//客户端保存的文件名
string filePath=Server.MapPath("DownLoad/aaa.zip");//路径

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.zip";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.zip");//路径

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.zip";//客户端保存的文件名
string filePath = Server.MapPath("DownLoad/aaa.zip");//路径

//以字符流的形式下载文件
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();

}

相关文章

  • ASP.NET MVC 导出Word报表

    ASP.NET MVC 导出Word报表

    本文主要介绍了ASP.NET MVC 导出Word报表的方法,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • 如何使用Swagger上传文件

    如何使用Swagger上传文件

    本文将介绍如何使用Swagger来上传文件。本文分步骤给大家介绍的非常详细,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • WPF实现文本描边+外发光效果的示例代码

    WPF实现文本描边+外发光效果的示例代码

    这篇文章主要介绍了如何利用WPF实现文本描边以及外发光的效果,文中的示例代码讲解详细,对我们学习有一定帮助,需要的可以参考一下
    2022-03-03
  • ASP.NET Core应用JWT进行用户认证及Token的刷新方案

    ASP.NET Core应用JWT进行用户认证及Token的刷新方案

    本文详细讲解了ASP.NET Core应用JWT进行用户认证及Token的刷新方案,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • C#中HTML字符转换函数分享

    C#中HTML字符转换函数分享

    在ASP.Net中经常会从网面中取数据或更新网页的显示。因为HTML中有些特殊字符如<, >, &等,显示实际值不一致,造成保存到数据库再取出来时会不一样
    2012-07-07
  • .NET Core类库System.Reflection.DispatchProxy实现简易Aop的方法

    .NET Core类库System.Reflection.DispatchProxy实现简易Aop的方法

    这篇文章主要给大家介绍了关于.NET Core类库System.Reflection.DispatchProxy实现简易Aop的相关资料,文中通过示例代码结束的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-12-12
  • ASP.NET MVC懒加载如何逐步加载数据库信息

    ASP.NET MVC懒加载如何逐步加载数据库信息

    在ASP.NET MVC中实现数据库的逐步加载可通过懒加载技术完成,首先,在EntityFramework中配置数据库上下文,使用对应的实体类映射数据库表,本文给大家介绍ASP.NET MVC懒加载如何逐步加载数据库信息,感兴趣的朋友跟随小编一起看看吧
    2024-10-10
  • ASP.NET 2.0服务器控件开发之复杂属性

    ASP.NET 2.0服务器控件开发之复杂属性

    ASP.NET 2.0服务器控件开发之复杂属性...
    2006-09-09
  • CheckBoxList两列并排编译为表格显示具体实现

    CheckBoxList两列并排编译为表格显示具体实现

    CheckBoxList两列并排的显示效果相比大家都有见到过吧,下面是具体的实现代码,感兴趣的朋友可以参考下哈
    2013-05-05
  • ASP.NET连接数据库并获取数据方法总结

    ASP.NET连接数据库并获取数据方法总结

    这篇文章主要介绍了ASP.NET连接数据库并获取数据方法,结合实例分析总结了ASP.NET连接数据库及获取数据的相关实现技巧,并附带了web.config配置文件的使用方法与相关注意事项,需要的朋友可以参考下
    2015-11-11

最新评论