(下载、打开)从服务器端将文件传送到客户端

来源:互联网 发布:收售淘宝店铺 编辑:程序博客网 时间:2024/05/18 00:38

 

前言: 有时候我们在网上点击下载或者打开(文件、视频、音频)按钮时就会弹出一个对话框,提示我们只打开还是保存。这就是客户端向服务器端发送请求,服务器端响应后把文件传送给客户端的过程。(纯属个人理解)

首先在buttonclick事件中调用传送给客户端的方法

       protected void btnResponse_Click(object sender, EventArgs e)
        {

       string FileName=@"H:/demo.mp4"   // 客户端请求一个视频文件

        PostClient(FileName); // 把压缩文件推送给客户端 (相当于客户端下载)

          }

 

然后响应到客户端的方法:

 public void PostClient(string FileName)
        {

           // 若要 根据服务器上的文件名给发送给客户端的文件命名则把下面两行注释取消
           //  string[] strNames = FileName.Split('\\');  // 以“\”分割
            // string relFileName = strNames[strNames.Length-1]; // 获得最后一个分割的字符串,即文件名
           

            Stream fs = File.OpenRead(FileName);

            byte[] buffer = new byte[fs.Length];

            int offset = 0;
            while (offset < buffer.LongLength)
            {
                offset += fs.Read(buffer, offset, buffer.Length - offset);
            }

             string relFileName = "a.mp4";

            Response.AddHeader("content-disposition", "attachment;filename=" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss-fff") + relFileName);
            Response.BinaryWrite(buffer);
            Response.Flush();
            Response.End();

        }

// 这样点击按钮时就能够在客户端看到一个打开或者保存的提示框了。。。。

原创粉丝点击