作者: 来源: 发布时间:2011-03-26 16:17 阅读:97 次
版权所有 2009-2011 北京新颖网络
保留所有权利
官方网站:
官方博客:
产品首页:
在线演示:
升级日志:
示例下载:
联系邮箱: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对象
CLSID:6528602B-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对象
CLSID:E94D2BA0-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>