zoukankan      html  css  js  c++  java
  • HTTP断点下载控件开发文档Xproer.HttpDownloader

    作者:北京新颖网络  来源:博客园  发布时间:2011-03-26 16:17  阅读:97 次  原文链接  [收藏] 

    版权所有 2009-2011 北京新颖网络

    保留所有权利

    官方网站:http://www.ncmem.com

    官方博客:http://www.cnblogs.com/xproer

    产品首页:http://www.ncmem.com/webplug/http-downloader/index.aspx

    在线演示:http://www.ncmem.com/products/http-downloader/demo/index.html

    升级日志:http://www.cnblogs.com/xproer/archive/2011/03/26/1996330.html

    示例下载:http://www.ncmem.com/download/HttpDownloader-Demo.rar

    联系邮箱:1085617561@qq.com

    联系QQ:1085617561

    1.      JavaScript对象

    1.1.   HttpDownloader对象

    类型:JavaScript

    文件上传对象的包装类,用户在实际的项目中只需要创建FileUploader对象,然后通过FileUploader对象就可以进行文件上传操作。

    语法:

    JavaScript(声明)

    function HttpDownloader() { }

    方法

     

    名称

    说明

     

    Ready

    指示文件上传对象准备完毕

     

    Download

    开始下载文件。此方法将会自动续传。

     

    Stop

    停止文件上传

     

    DownNext

    继续传输上传队列中的下一个文件

    Ready方法

    将上传任务状态设置为准备状态。

    Post方法

    开始上传文件。

    说明:此函数将会自动实现断点续传功能。如果当前任务文件只下载了一半,则在下次开始时HttpDownloader组件将会自动定位到上次下载的位置继续下载数据。

    Stop方法

    停止下载任务。

    DownNext方法

    继续上传队列中下一个任务。

    属性

     

    名称

    说明

     

    State

    下载对象状态。

     

    FileID

    下载任务ID。

     

    LocalFolder

    本地文件夹。例:D:\Soft\

     

    pMsg

    消息对象。

     

    pProcess

    上传进度条对象

     

    pPercent

    上传进度百分比。

     

    pButton

    控制按钮

     

    FireUrl

    互联网文件地址。例:http://download.microsoft.com/download/4/C/A/4CA9248C-C09D-43D3-B627-76B0F6EBCD5E/IE9-Windows7-x86-chs.exe

    1.2.   DownloaderManager对象

    类型:JavaScript

    文件管理器。

    方法

    AddFile方法

    添加一个文件到下载对列中

    语法:

    void AddFile(url);

    参数:

         url 网络文件地址。例:http://www.qq.com/qq.exe

    DownFirst方法

    开始下载队列中的第一个文件。

    语法:

    void DownFirst()

    Exist方法

    检查上传队列中是否存在指定文件。

    说明:此函数是根据本地文件的完整路径来检测的。

    bool Exist();

    返回值:

         true

    表示存在。

         false

    不存在。

    属性

    Fields属性

    上传时附加的额外信息。

    注意:此属性暂时不支持中文字符串。

    以下示例演示上传时添加用户名和密码的额外信息:

    var manager = new DownloaderManager("FilePostLister");

    manager.Fields["UserName"] = "test";

    manager.Fields["UserPass"] = "test";

    Config属性

    提供全局配置信息。

    语法:

    this.Config = {

             "EncodeType" : "UTF-8"

             "Folder" : "D:\\"//本地文件夹。下载文件后保存的本地文件夹地址

         };

    EncodeType值

    服务器编码方式。请求的URL如果带参数,则需要设置此编码

    如果服务器端编码方式是UTF-8

    <globalization requestEncoding="utf-8" responseEncoding="utf-8"/>

    则客户端也必须是UTF-8

    var manager = new FileTransferManager("FilePostLister");

    manager.Config["EncodeType"] = "UTF-8";

    如果服务端编码方式是GB2312

    <globalization requestEncoding="gb2312" responseEncoding="gb2312"/>

    则客户端也必须是GB2312

    var manager = new FileTransferManager("FilePostLister");

    manager.Config["EncodeType"] = "GB2312";

    2.      ActiveX对象

    2.1.   Xproer.DownloaderPartition对象

    CLSID6528602B-7DF7-445A-8BA0-F6F996472569

    类型:ActiveX

    文件夹选择对象。弹出一个文件选择对话框,为用户提供选择文件的功能。

    方法

     

    名称

    说明

     

    ShowFolder

    弹出文件选择对话框

    ShowFolder方法

    显示文件夹选择对话框。

    示例

    下面的代码示例将会打开一个文件夹选择窗口

    JavaScript:

    <script type="text/javascript" language="javascript">

         //选择文件夹

         function ShowFolderDlg()

         {

             var obj = new ActiveXObject(manager.ActiveX["Partition"]);

             if(!obj.ShowFolder()) return;

     

              manager.Config["Folder"] = obj.Folder;

         }

    </script>

    2.2.   Xproer.HttpDownloader对象

    CLSIDE94D2BA0-37F4-4978-B9B9-A4F548300E48

    类型:ActiveX

    HTTP文件下载对象,负责文件的下载和续传工作。

    属性

     

    名称

    说明

     

    FileID

    文件ID。必须唯一。

     

    Object

    JS对象指针。

     

    FileUrl

    网络文件地址。例:http://www.qq.com/qq.exe

     

    LocalFolder

    本地文件夹。用来保存下载的文件。例:D:\\Soft\\

     

    EncodeType

    编码类型。GB2312/UTF-8

    事件

     

    名称

    说明

     

    OnComplete

    在文件上传完成时发生

     

    OnPost

    每当向服务器传输成功一部分数据时发生

     

    OnError

    在文件上传出现错误时发生

    OnComplete事件

    传输完成事件,当文件成功下载完毕后,插件将会调用此方法 

    参数:

         obj  JS对象。

    OnPost事件

    传输数据事件。每当HttpDownloader插件成功向服务器传输二进制数据后将触发此事件。

    参数:

    obj  JS对象。

         speed 下载速度。

         downLen 已下载长度。

         percent 已下载百分比。

         time 剩余时间。00:12:20

    OnError事件

    传输错误事件,当传输出现错误时系统将会自动调用此事件。

    参数:

         obj JS对象。

         err 错误码

    0

    启动网络环境错误

    1

    SOCKET错误

    2

    打开SOCKET错误

    3

    创建SOCKET错误

    4

    连接服务器错误

    5

    发送数据错误

    6

    远程文件长度为0

    7

    未设置本地目录

    8

    建文件失败

    9

    向本地文件写入数据失败

    10

    公司未授权

    11

    未设置IP

    12

    域名未授权

    13

    文件超过限制大小

    14

    网络超时

    400

    错误请求

    401

    未授权

    402

    支付请求

    403

    禁止访问

    404

    未找到页面

    405

    方法不允许

    406

    不接受请求

    407

    "需要验证代码

    408

    请求超时

    409

    访问冲突

    410

    已过时

    411

    未指定请求内容长度

    412

    前提条件失败

    413

    请求内容过长

    414

    请求地址过长

    415

    不支持的媒体类型

    416

    请求范围不符合要求

    417

    预期失败

    500

    内部服务错误

    501

    未实现

    502

    "错误的网关

    503

    服务不可用

    504

    网关超时

    505

    HTTP版本不支持

    示例

    下面的代码将会创建一个下载项,并将文件下载到本地D盘下。

    JavaScript

    <script type="text/javascript" language="javascript">

        var manager = new DownloaderManager("FilePostLister");

        var obj = document.getElementById("FilePanel1");

        if (null != obj) obj.OnFileDrop = eOnFileDrop;

       

        manager.Config["EncodeType"] = "GB2312";

        manager.Config["Folder"] = "D:\\";

     

        manager.Fields["UserName"] = "test";//与文件同时上传的附加信息。

        manager.Fields["UserPass"] = "test";

     

        function StartDown()

        {

             manager.AddFile("http://download.microsoft.com/download/4/C/A/4CA9248C-C09D-43D3-B627-76B0F6EBCD5E/IE9-Windows7-x86-chs.exe");

             manager.DownFirst();

        }

     

         //选择文件夹

         function ShowFolderDlg()

         {

             var obj = new ActiveXObject(manager.ActiveX["Partition"]);

             if(!obj.ShowFolder()) return;

     

             manager.Config["Folder"] = obj.Folder;

         }

    </script>

    3.      UI模板

    您可以根据实际需求来修改以下模板。

    HTML:

    <div class="UploaderItem" id="UploaderTemplate">

         <div class="UploaderItemLeft">

             <div class="FileName top-space">HttpDownloader程序开发.pdf</div>

             <div class="ProcessBorder top-space">

                  <div class="Process"></div>

             </div>

             <div class="PostInf top-space">已下载:15.3MB 速度:20KB/S 剩余时间:10:02:00</div>

         </div>

         <div class="UploaderItemRight">

             <a class="Btn" href="javascript:void(0)">取消</a>

             <div class="ProcessNum">35%</div>

         </div>

    </div>

  • 相关阅读:
    一步一步学Remoting之四:承载方式(2)<转>
    一步一步学Remoting之五:异步操作<转>
    NET3.0+中使软件发出声音[整理篇]<转>
    Ext Core手册
    一步一步学Remoting之一:从简单开始<转>
    asp.net 常用字符串过滤方法 <转>
    mssql性能优化<转>
    一步一步学Remoting之四:承载方式(1)<转>
    Javascript中最常用的61个经典技巧 <转>
    Js事件对象<转>
  • 原文地址:https://www.cnblogs.com/lzhitian/p/2424011.html
Copyright © 2011-2022 走看看