ASP.NET从URL链接地址下载文件到本地(实例源码)

ASP.NET 2014-08-23 33339浏览 收藏本文

在ASP.NET的WebForm应用程序中,实现从URL链接地址下载文件到本地还是比较方便和简单的,今天就分享一个结合下载实现的实例给大家,其实现的核心代码如下:

//创建Stream
      Stream stream = null;
      //一次读取并返回到客户端的字节数
      var bytesToRead = 10000;
      //缓存上面读取到的字节
      var buffer = new Byte[bytesToRead];
      try
      {
        var url = "http://dldir1.qq.com/qqfile/qq/QQ6.2/12179/QQ6.2.exe";
        //创建WebRequest
        var fileReq = (HttpWebRequest)HttpWebRequest.Create(url);
        //为请求声明一个response
        var fileResp = (HttpWebResponse)fileReq.GetResponse();
        if (fileReq.ContentLength > 0)
          fileResp.ContentLength = fileReq.ContentLength;
        //从请求响应中获取返回的Stream
        stream = fileResp.GetResponseStream();
        //准备当前客户端的响应
        var resp = HttpContext.Current.Response;
        //指定响应头的类型
        resp.ContentType = "application/octet-stream";
        //指定返回文件的名称
        resp.AddHeader("Content-Disposition", "attachment; filename="qq.exe"");
        //指定返回文件的大小
        resp.AddHeader("Content-Length", fileResp.ContentLength.ToString());
        int length;
        do
        {
          //检测当前客户端是否仍然和服务器保持连接状态
          if (resp.IsClientConnected)
          {
            //读取数据到缓冲区
            length = stream.Read(buffer, 0, bytesToRead);
            resp.OutputStream.Write(buffer, 0, length);
            resp.Flush();
            //清空缓冲区
            buffer = new Byte[bytesToRead];
          }
          else
          {
            //如果客户端和服务器和连接已丢失,则放弃下载
            length = -1;
          }
        } while (length > 0); //循环,直到stream的结束
      }
      finally
      {
        if (stream != null)
        {
          //关闭stream
          stream.Close();
        }
      }
本例源码:链接: http://pan.baidu.com/s/1qWFKS8W 密码: kie1 下载后解压,打开项目,在浏览器中运行文件--download-file-from-url.aspx 即可 注:本实例的开发环境:VS2013 UPDATE 3,.NET版本:4.5 download

转载请注明:图享网 » ASP.NET从URL链接地址下载文件到本地(实例源码)

验证码