zoukankan      html  css  js  c++  java
  • 类似 MSDN CSDN 导航树效果 ASP.Net(C#) + JavaScript 实现!

    使用该 URL  http://localhost/WebApplicationX/WebForm1.aspx  在 Flashget 中下载

    切换 暂停/开始 , 并增加下载的块数 测试!

    原理参见上一篇 blog JSP/Servlet 实现版: 

    http://blog.csdn.net/playyuer/archive/2004/07/30/56538.aspx

    利用该原理不难实现支持数据库大字段的断点续传多线程链接的下载!

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    public class WebForm1 : System.Web.UI.Page
    {
     private void Page_Load(object sender, System.EventArgs e)
     {

      string s  = @"e:/northwind.mdb";
      s = @"I://SetupRes//Sun//j2re-1_4_2_05-windows-i586-p.exe";
      System.IO.Stream S = new System.IO.FileStream(s, System.IO.FileMode.Open, System.IO.FileAccess.Read,System.IO.FileShare.Read);

      long p = 0;

      long l = new System.IO.FileInfo(s).Length;

      if (Request.Headers["Range"] != null)
      {
       Response.StatusCode = 206;
       p = long.Parse( Request.Headers["Range"].Replace("bytes=","").Replace("-",""));
      }

      Response.AddHeader("Content-Length", ((long)(l - p)).ToString()  );

      if (p != 0)
      {
       //不是从最开始下载,
       //响应的格式是:
       //Content-Range: bytes [文件块的开始字节]-[文件的总大小 - 1]/[文件的总大小]
       Response.AddHeader("Content-Range","bytes " + p.ToString() + "-" + ((long)(l - p)).ToString() + "/" + l.ToString());
      }

      Response.ContentType = "application/octet-stream";    
      Response.AddHeader("Content-Disposition", "attachment; filename="  +  System.IO.Path.GetFileName(s));

      S.Position = p;

      int i = 1;
      byte[] b = new Byte[1024];
      while (i > 0)
      {
       i = S.Read(b, 0, b.Length);
       Response.OutputStream.Write(b, 0, i);
      }

      S.Close();
      Response.End();
     }
     #region Web 窗体设计器生成的代码
     override protected void OnInit(EventArgs e)
     {
      //
      // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
      //
      InitializeComponent();
      base.OnInit(e);
     }
      
     ///


     /// 设计器支持所需的方法 - 不要使用代码编辑器修改
     /// 此方法的内容。
     ///

     private void InitializeComponent()
     {
      this.Load += new System.EventHandler(this.Page_Load);
     }
     #endregion
    }

  • 相关阅读:
    FW : Unit of Measure related settings in SAP
    SAP PCA: 转移价格的确定
    SAP 关于贸易伙伴(Trading Partner)区分关联方/非关联方/子公司/第三方
    FSV tables in S/4 HANA OB58 , S_E38_98000088
    SAP Profit Center Table Data
    服务器搭建网站完整教程(宝塔面板+wordpress)
    运营
    undefined reference to `std::cout'等错误
    [c++][chromium]C++做与不做 C++ Dos and Don'ts
    [git]快速迁移git仓库
  • 原文地址:https://www.cnblogs.com/Microshaoft/p/2485784.html
Copyright © 2011-2022 走看看