C#下载4种方法(转载: http://topic.csdn.net/u/20120822/10/d8115bb7-2f2a-4c2f-b0c1-aab68bcb1e3e.html)

转载 2012年08月30日 10:20:56
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();

    }
}


U-boot、Kernel、文件系统的几种下载方式总结(基于TQ2440开发板)

自己移植U-boot的话会生成nor flash启动文件u-boot-nor.bin和nand flash启动文件u-boot-nand.bin。 内核移植生成文件uImage.bin。 文件系统生...
  • szl_lxy
  • szl_lxy
  • 2015年02月01日 16:18
  • 1063

visual studio 的各个版本下载地址

Microsoft Visual Studio 6.0 下载: 英文版360云盘下载:http://l11.yunpan.cn/lk/sVeBLC3bhumrI 英文版115网盘下载:http:/...
  • SUKHOI27SMK
  • SUKHOI27SMK
  • 2016年08月21日 10:17
  • 1555

u-boot下运行下载和运行程序“Helloworld”

虽然自2012年9月开始就做嵌入式了,但感觉自己一直在打酱油,首先玩的loongson的平台的片子(玩过的人都懂的),其次是公司招我进去的目标只是为了验证公司做的硬件是没问题的,整个方案基本就是按开发...
  • Aniu127
  • Aniu127
  • 2013年08月11日 13:08
  • 1181

解析xml http://topic.csdn.net/u/20070409/19/6BAD2D5B-D78B-4CA1-81C7-F687D7E9FDE0.html

使用JDOM解析XML一、前言    JDOM是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初,JDOM作为一个开放源代码项目正式开始研发。JDOM...
  • xuchongya
  • xuchongya
  • 2011年04月28日 20:29
  • 1757

算法面试:精选微软经典的算法面试100题练习(http://topic.csdn.net/u/20101011/16/2befbfd9-f3e4-41c5-bb31-814e9615832e.h)

1.把二元查找树转变成排序的双向链表   题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不能创建任何新的结点,只调整指针的指向。                ...
  • xjbzju
  • xjbzju
  • 2011年08月27日 08:47
  • 2240

sqlite中如何查询数据库中存在的所有表?(转自:http://topic.csdn.net/u/20081231/16/6aee6233-32c2-4f20-a3d7-0cb154974ce4.)

sqlite中如何查询数据库中存在的所有表? 请指教!!! 官方文档就有。 http://www.sqlite.org/faq.html (7) How do I list all tab...
  • lslxdx
  • lslxdx
  • 2011年11月06日 15:56
  • 2442

Eclipse快捷键【http://topic.csdn.net/u/20100806/10/b6f5c08e-5bba-4361-a761-c89b20d42824.html?47565】

. 打开MyEclipse 6.0.1,然后“window”→“Preferences” 2. 选择“java”,展开,“Editor”,选择“Content Assist”。 3. ...
  • youycc
  • youycc
  • 2012年03月09日 12:51
  • 939

计算机等级考试哦计算机等级考试http://passport.csdn.net/account/active?user=wangzihelen&active=8EC81E7691B76D8F2AD427EFB7F9C935

  • 2011年02月22日 20:53
  • 804B
  • 下载

iPhone3,2_SHSH_6.1.2(10B146)_0000004F1F0EA50E.i4

  • 2016年04月13日 17:08
  • 12KB
  • 下载

javax.servlet.Filter详解(一)(转自:http://hi.baidu.com/jxnuywf/blog/item/33d96889c1dfa7b00f2444c2.html)

转自:http://hi.baidu.com/jxnuywf/blog/item/33d96889c1dfa7b00f2444c2.html或许,servlet API的2.3版本中最重要的一个新功能...
  • jubincn
  • jubincn
  • 2011年02月15日 11:51
  • 2064
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#下载4种方法(转载: http://topic.csdn.net/u/20120822/10/d8115bb7-2f2a-4c2f-b0c1-aab68bcb1e3e.html)
举报原因:
原因补充:

(最多只允许输入30个字)