点击这里给我发消息 点击这里给我发消息

ASP.NET动态下载文件程序

添加时间:2008-1-7
    相关阅读: ASP ASP.NET 程序
//打开要下载的文件
        string FilePath = Server.MapPath("~/media/education/" + filename);
        System.IO.FileStream r = new System.IO.FileStream(FilePath, System.IO.FileMode.Open);
        //设置基本信息
        Response.Buffer = false;
        Response.AddHeader("Connection", "Keep-Alive");
        Response.ContentType = "application/octet-stream";
        Response.ContentEncoding = System.Text.Encoding.Default;
 //HttpUtility.UrlEncode解决中文文件名乱码问题
        Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(System.IO.Path.GetFileName(FilePath)) );
        Response.AddHeader("Content-Length", r.Length.ToString());


        while (true)
        {
            //开辟缓冲区空间
            byte[] buffer = new byte[1024];
            //读取文件的数据
            int leng = r.Read(buffer, 0, 1024);
            if (leng == 0)//到文件尾,结束
                break;
            if (leng == 1024)//读出的文件数据长度等于缓冲区长度,直接将缓冲区数据写入
                Response.BinaryWrite(buffer);
            else
            {
                //读出文件数据比缓冲区小,重新定义缓冲区大小,只用于读取文件的最后一个数据块
                byte[] b = new byte[leng];
                for (int i = 0; i < leng; i++)
                    b[i] = buffer[i];
                Response.BinaryWrite(b);
            }
        }
        r.Close();//关闭下载文件
        Response.End();//结束文件下载

<!-- Inject Script Filtered -->
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册