版权所有 2009-2013 武汉命运科技有限公司
保留所有权利
产品首页: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
VC运行库:http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf%20
联系信箱:[email protected]
联系QQ:1085617561
类型:JavaScript
文件上传对象的包装类,用户在实际的项目中只需要创建FileUploader对象,然后通过FileUploader对象就可以进行文件上传操作。
语法:
JavaScript(声明)
function HttpDownloader() { }
|
名称
|
说明
|
|
Ready
|
指示文件上传对象准备完毕
|
|
Download
|
开始下载文件。此方法将会自动续传。
|
|
Stop
|
停止文件上传
|
|
DownNext
|
继续传输上传队列中的下一个文件
|
将上传任务状态设置为准备状态。
开始上传文件。
说明:此函数将会自动实现断点续传功能。如果当前任务文件只下载了一半,则在下次开始时HttpDownloader组件将会自动定位到上次下载的位置继续下载数据。
停止下载任务。
继续上传队列中下一个任务。
|
名称
|
说明
|
|
State
|
下载对象状态。
|
|
FileID
|
下载任务ID。
|
|
LocalFolder
|
本地文件夹。例:D:\Soft\
|
|
pMsg
|
消息对象。
|
|
pProcess
|
上传进度条对象
|
|
pPercent
|
上传进度百分比。
|
|
pButton
|
控制按钮
|
|
FireUrl
|
互联网文件地址。例:http://download.microsoft.com/download/4/C/A/4CA
|
类型:JavaScript
文件管理器。
添加一个文件到下载对列中
语法:
void AddFile(url);
参数:
url 网络文件地址。例:http://www.qq.com/qq.exe
开始下载队列中的第一个文件。
语法:
void DownFirst()
检查上传队列中是否存在指定文件。
说明:此函数是根据本地文件的完整路径来检测的。
bool Exist();
返回值:
true
表示存在。
false
不存在。
上传时附加的额外信息。
注意:此属性暂时不支持中文字符串。
以下示例演示上传时添加用户名和密码的额外信息:
var manager = new DownloaderManager("FilePostLister");
manager.Fields["UserName"] = "test";
manager.Fields["UserPass"] = "test";
提供全局配置信息。
语法:
this.Config = {
"EncodeType" : "UTF-8"
"Folder" : "D:\\"//本地文件夹。下载文件后保存的本地文件夹地址
};
服务器编码方式。请求的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";
CLSID:6528602B-7DF7
类型:ActiveX
文件夹选择对象。弹出一个文件选择对话框,为用户提供选择文件的功能。
|
名称
|
说明
|
|
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>
CLSID:E94D2BA0
类型:ActiveX
HTTP文件下载对象,负责文件的下载和续传工作。
|
名称
|
说明
|
|
FileID
|
文件ID。必须唯一。
|
|
Object
|
JS对象指针。
|
|
FileUrl
|
网络文件地址。例:http://www.qq.com/qq.exe
|
|
LocalFolder
|
本地文件夹。用来保存下载的文件。例:D:\\Soft\\
|
|
EncodeType
|
编码类型。GB2312/UTF-8
|
|
名称
|
说明
|
|
OnComplete
|
在文件上传完成时发生
|
|
OnPost
|
每当向服务器传输成功一部分数据时发生
|
|
OnError
|
在文件上传出现错误时发生
|
传输完成事件,当文件成功下载完毕后,插件将会调用此方法
参数:
obj JS对象。
传输数据事件。每当HttpDownloader插件成功向服务器传输二进制数据后将触发此事件。
参数:
obj JS对象。
speed 下载速度。
downLen 已下载长度。
percent 已下载百分比。
time 剩余时间。00:12:20
传输错误事件,当传输出现错误时系统将会自动调用此事件。
参数:
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
manager.DownFirst();
}
//选择文件夹
function ShowFolderDlg()
{
var obj = new ActiveXObject(manager.ActiveX["Partition"]);
if(!obj.ShowFolder()) return;
manager.Config["Folder"] = obj.Folder;
}
</script>
您可以根据实际需求来修改以下模板。
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.打开Tomcat的web.xml配置文件
2.打开项目的web.xml配置文件
增加以下配置节:
<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>