HTTP断点下载控件开发文档-Xproer.HttpDownloader

版权所有 2009-2013 武汉命运科技有限公司

保留所有权利

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

产品首页: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/1996322.html

开发文档:http://www.cnblogs.com/xproer/archive/2011/03/26/1996371.html

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

资源下载:CAB安装包开发文档DEMO示例

VC运行库:http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf%20

联系信箱:[email protected]

联系QQ1085617561

 

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/4CA 9248C -C09D-43D3-B627-76B 0F 6EBCD5E/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-F 6F 996472569

类型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 -37F 4-4978-B9B9-A 4F 548300E48

类型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/4CA 9248C -C09D-43D3-B627-76B 0F 6EBCD5E/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>

1.1. 让tomcat支持cab文件下载

1.打开Tomcat的web.xml配置文件

clip_image001

2.打开项目的web.xml配置文件

clip_image003clip_image005

增加以下配置节:

     <mime-mapping>

         <extension>cab</extension>

         <mime-type>application/octet-stream</mime-type>

     </mime-mapping>

     <mime-mapping>

         <extension>crx</extension>

         <mime-type>application/octet-stream</mime-type>

     </mime-mapping>

     <mime-mapping>

         <extension>xpi</extension>

         <mime-type>application/octet-stream</mime-type>

     </mime-mapping>

     <mime-mapping>

         <extension>exe</extension>

         <mime-type>application/octet-stream</mime-type>

     </mime-mapping>

完整代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

 <mime-mapping>

  <extension>cab</extension>

  <mime-type>application/octet-stream</mime-type>

 </mime-mapping>

 <mime-mapping>

  <extension>crx</extension>

  <mime-type>application/octet-stream</mime-type>

 </mime-mapping>

<mime-mapping>

  <extension>xpi</extension>

  <mime-type>application/octet-stream</mime-type>

 </mime-mapping>

<mime-mapping>

  <extension>exe</extension>

  <mime-type>application/octet-stream</mime-type>

 </mime-mapping>

 <welcome-file-list>

  <welcome-file>index.htm</welcome-file>

 </welcome-file-list>

 <login-config>

  <auth-method>BASIC</auth-method>

 </login-config>

</web-app>

你可能感兴趣的:(download)