当前位置:  编程技术>.net/c#/asp.net

c#文件下载示例的4种方法分享

    来源: 互联网  发布时间:2014-10-29

    本文导语:  代码如下: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.We...

代码如下:

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();
}
}


    
 
 

您可能感兴趣的文章:

  • c#(asp.net)实现的文件下载函数
  • C#实现word文件下载的代码
  • C# word文件下载的实例代码
  • 下载软件后使用c#获取文件的md5码示例
  • C# Winform下载文件并显示进度条的实现代码
  • C#实现的Ftp 文件上传与下载类
  • C#同步、异步远程下载文件实例
  • c# WinForm文件上传下载代码示例
  • PHP 强制下载文件示例代码
  • php读取与下载csv文件的示例代码
  • php文件下载(防止中文文件名乱码)的示例代码
  • php实现文件下载简单示例(代码实现文件下载)
  • 使用PHP强制下载PDF文件示例
  • php实现文件下载、支持中文文件名的示例代码
  • jsp 文件下载示例代码
  • Java用文件流下载网络文件示例代码
  • java使用http实现文件下载学习示例
  • php多文件上传下载示例代码
  • java操作ftp下载文件示例
  • php导出csv数据在浏览器中输出提供下载或保存到文件的示例
  • IP地址数字互转 iis7站长之家
  • java实现服务器文件打包zip并下载的示例(边打包边下载)
  • jsp实现文件上传下载的程序示例
  • asp.net文件上传、下载管理的示例代码
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 求救:谁有从服务器下载文件(一次下载一个文件就可以)的class 文件或着着方面的信息吗?90分必送
  • Centos6下安装Shell下文件上传下载rz,sz命令
  • 请问高手,有没有办法可以控制文件的下载?下载文件,一般通过地址链直接链接过去就可以下载,但有些文件是要某种条件下才可以让客户下载,如
  • 请问如何使客户端浏览器一定下载某个文件,而不是打开该文件(哪怕这个文件是HTML或JPG)?
  • jsp做下载文件,(如rar文件)为什么下载后,无法打开?
  • 怎样让下载直接打开.exe文件 或者 .chm文件。 而不是变成下载框
  • 我要下载*.txt文件,怎样才能出现下载对话框,而不是在IE里面直接打开*.txt文件
  • nginx中文件下载指定保存文件名的配置方法
  • 下载了redhat,如何将iso文件变成光盘文件??
  • 网页中链接可执行文件,不想显示文件下载对话框,想直接在当前位置运行该程序,怎么办?
  • 客户端如何操作服务器的文件(如查看文件列表,上传,下载)(★)
  • ftp mget 如何下载文件大小大于0的文件?
  • php文件下载代码(多浏览器兼容、支持中文文件名)
  • linux中登陆win2003文件服务器,传送和下载文件的命令?
  • 访问JSP文件或者Servlet文件时提示下载的解决方法
  • 下载了Together5.02_Crack.rar文件,不知*.rar是什么文件,如何打开?
  • 下载的 linux CD 格式 5个 iso 文件如何 转换为一个 dvd 格式的 iso 文件呢?
  • LINUX->WINXP下载文件的文件名乱码
  • 下载了jbuilder5,是rar格式的,解开后有两个文件,一个是rsc-jb5.bin,一个是rsc-jb5.cue,据说这两个文件是刻光盘的,请问谁知道怎么刻?不会用这两个文件直接安装吧?谢谢!
  • 哪位有可以下载 linux 下阅读 pdf文件 和 chm 格式文件的工具地址啊?
  • 怎么有的.tar.gz等压缩文件下载后,打开出错,我明明下载完了的啊!
  • jQuery文件下载插件 Downloadr
  • Web文件下载 myfiles
  • jQuery文件下载插件 jDownload
  • 文件下载管理器 uGet
  • 那里有FREEBSD下载,需要下载那些文件?
  • 文件下载!
  • 在Nginx中使用X-Sendfile头提升PHP文件下载的性能(针对大文件下载)
  • 文件下载服务器 Open Upload
  • 文件下载问题!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3