FTP文件上传控件开发文档-Xproer.FtpUploader
版权所有 2009-2014 荆门泽优软件有限公司保留所有权利
官方网站:http://www.ncmem.com
产品首页:http://www.ncmem.com/webplug/ftp-uploader2/index.asp
在线演示:http://www.ncmem.com/products/ftp-uploader2/demo/index.html
产品介绍:http://www.iyunv.com/xproer/archive/2011/04/04/2005241.html
开发文档:http://www.iyunv.com/xproer/archive/2011/03/15/1984413.html
升级日志:http://www.iyunv.com/xproer/archive/2011/04/04/2005251.html
资源下载:示例下载,开发文档,加密解密工具,cab安装包(x86),cab安装包(x64),VC库,根证书,ServU-7.x,ServU-9.x,FileZilla Server,
联系邮箱:1085617561@qq.com
联系QQ:1085617561
1. 概述
Xproer.FtpUploader文件上传控件可以帮助用户向服务器上传超过100G大小的文件。同时提供了断点续传的功能。如果用户在上传文件的过程中出现网络错误在下次上传时仍然可以继续上次上传的位置上传,而不需要重新上传,这个功能可以帮助用户节省许多时间,从而提高用户体能。有了这个功能新颖网络FTP文件上传控件就能够在更加复杂的网络环境中使用。
在实际的应用环境中,不同的用户可能会上传相同的文件,这些文件有的甚至达到2G左右,如果许多这样的文件重复存在那么将会占用许多的服务器空间。现在新颖网络FTP文件上传控件提供了MD5文件验证功能,通过这个功能系统可以在用户上传文件前在服务器验证相同的文件是否存在,如果存在那么就不必上传相同的文件,这样就可以帮助企业节省更多的服务器空间,从而为企业节省成本。
2. 正式包布署说明
1.将FtpUploader.cab,FtpUploader64.cab上传到服务器中。
2.修改FtpUploader.js中的Clsid,ActiveX名称,CabPath地址和版本号。
3. 快速开始
在本地快速搭建测试环境步骤:
1.架设FTP服务器。
2.修改演示文件中的配置。
3.运行示例。index.html
3.1. 架设FTP服务器
新颖网络FTP文件上传插件支持Microsoft FTP,Serv-U和FileZilla。
以下分别为FTP服务器的架设教程:
安装ServU—7.1:http://www.iyunv.com/xproer/archive/2010/11/20/1882370.html
安装ServU-6.4.0.6:http://www.iyunv.com/xproer/archive/2011/03/28/1998042.html
安装FileZilla Server:http://www.iyunv.com/xproer/archive/2010/12/23/1914588.html
安装Microsoft FTP Server:http://www.iyunv.com/xproer/archive/2011/03/06/1972192.html
3.2. 添加测试帐号
由于测试版FtpUploader只能连接127.0.0.1服务器,且只能以test帐号登陆,所以在演示时需要添加test帐号。
帐号:test
密码:test
3.3. 配置FTP信息
修改演示文件FtpUploader.html中的配置信息。
var ftpMgr = new FtpUploaderMg();
ftpMgr.Config["Server"] = "127.0.0.1";//测试版插件只能连接这个IP
ftpMgr.Config["UserName"] = "test";//设置FTP用户名。注意此处仅为了方便测试,正式应用时会将用户名和密码封装在控件内部。
ftpMgr.Config["UserPass"] = "test";//设置FTP密码。注意此处仅为了方便测试,正式应用时会将用户名和密码封装在控件内部。
3.4. 运行示例
在IE中打开文件FtpUploader.html
4. 用户接口
4.1. 设置FTP登陆信息
var ftpMgr = new FtpUploaderMgr();
ftpMgr.Config["Server"] = "127.0.0.1";//测试版插件只能连接这个IP
ftpMgr.Config["UserName"] = "test";//设置FTP用户名。注意此处仅为了方便测试,正式使用时会将用户名和密码封装在控件内部。
ftpMgr.Config["UserPass"] = "test";//设置FTP密码。注意:此处仅为了方便测试,正式使用时会将用户名和密码封装在控件内部。
4.2. 打开帐号加密功能
var ftpMgr = new FtpUploaderMgr();
ftpMgr.Config["Encryption"] = true;//打开帐号加密功能,帐号和密码都会被自动解密
4.3. 设置允许上传的文件类型
允许指定的文件类型:jpg,png,gif,bmp,doc,xls,ppt,rar,txt
允许所有的文件类型:*
var ftpMgr = new FtpUploaderMgr();
ftpMgr.Config["FileFilter"] = "doc,xls,ppt,txt,png,jpg,bmp,gif,rar";//不同的文件类型以逗号分隔。如果允许所有的文件类型,则输入*
4.4. 上传指定路径的文件
主要步骤如下:
1.通过AddFile()函数添加指定文件。
2.通过PostFirst()函数上传文件。
var ftpMgr = new FtpUploaderMgr();
ftpMgr.AddFile("D:\\Soft\\QQ2011.exe");
ftpMgr.PostFirst();
4.5. 自动创建多级目录
说明:
1.目录必须以反斜杠(/)分隔,不能是其它分隔符,比如正斜杠(\)
var ftpMgr = new FtpUploaderMgr();
ftpMgr.Config["Server"] = "127.0.0.1";
ftpMgr.Config["RemoteFolder"] = "test1/test2/test3";//自动创建多级目录
window.onload = function()
{
ftpMgr.Init();
};
5. 功能
5.1. 文件MD5验证
主要步骤如下:
1. 将文件验证方式设为md5
2. 处理FtpUploader_MD5_Complete事件
1.设置文件验证方式
打开FtpUploader.js
修改FtpUploaderMgr的Config属性
将CrypType值改为md5
2.处理FtpUploader_MD5_Complete事件
打开文件FtpUploader.js,找到下面的代码。在修改此函数的逻辑,添加服务器验证的代码。
function FtpUploader_MD5_Complete(obj)
{
var cry = obj.Config["CrypType"].toLowerCase();
if (cry == "md5")
{
this.MD5 = obj.ATL.MD5;
alert(this.MD5);
}
else if (cry == "crc")
{
this.CRC = obj.ATL.CRC;
alert(this.CRC);
}
//在下面增加向服务器验证MD5的代码。
//obj.Upload();
}
6. JavaScript对象
6.1. FtpUploader对象
类型:JavaScript
文件上传对象的包装类,用户在实际的项目中只需要创建FtpUploader对象,然后通过FtpUploader对象就可以进行文件上传操作。
语法:
JavaScript(声明)
function FtpUploader() { }
属性
名称
说明
pMsg
消息对象。是一个DIV
pProcess
上传进度条对象。是一个DIV
pPercent
上传进度百分比对象。是一个DIV
pButton
控制按钮对象。是一个A
LocalFile
包含完整路径的本地文件名称。例:C:\qq.exe
方法
名称
说明
Ready
指示文件上传对象准备完毕
Post
开始上传文件
Stop
停止文件上传
PostNext
继续传输上传队列中的下一个文件
Ready方法
将上传任务状态设置为准备状态。
Post方法
开始上传文件。
说明:此函数将会自动实现断点续传功能。如果当前任务文件只上传了一半,则在下次开始时XSUploader组件将会自动定位到上次上传的位置继续上传数据。
Stop方法
停止上传任务。
PostNext方法
继续上传队列中下一个任务。
事件
FtpUploader_StateChanged事件
语法
function FtpUploader_StateChanged(obj,state)
参数:
obj
FtpUploader对象
state
控件状态。 STA_Leisure
= 0
//空闲
,STA_Uploading
= 1
//上传中(暂时保留)
,STA_Complete
= 2
//传输完毕
,STA_Error
= 3
//错误
,STA_Connected
= 4
//服务器已连接
,STA_MD5_Working
= 5
//正在计算MD5
,STA_MD5_Complete
= 6
//MD5计算完毕
6.2. FtpUploaderMgr对象
类型:JavaScript
文件上传管理类。所有上传的文件都是通过此类来进行管理的。
构造函数
FtpUploaderMgr()
方法
AddFile方法
添加一个文件到上传对列中
语法:
void AddFile(fid);
参数:
fid
新上传任务的文件ID,此ID用来区域不同的上传任务。必须保证唯一。
PostFirst方法
开始上传队列中的第一个文件。
语法:
void PostFirst()
Exist方法
检查上传队列中是否存在指定文件。
语法:
bool Exist();
返回值:
true
表示存在。
false
不存在。
说明:此函数是根据本地文件的完整路径来检测的。
SetFileFilter方法
设置文件过滤器。
语法
void SetFileFilter(filter)
参数:
filter 文件类型字符串。由逗号分隔。示例:exe,gif,png
SetExtFilter方法
设置允许的文件类型。如果不设置文件类型,则表示不允许上传任何类型。
语法
bool IsExtFilter(fname);
参数:
filter 文件类型字符串,使用逗号分隔。示例:gif,jpg,bmp,png
属性
Config属性
提供插件的全局配置信息。在项目如果需要修改插件的配置信息,只需要通Config属性来控件即可。
语法:
this.Config = {
"Server" : "127.0.0.1"
, "UserName" : "test"
, "UserPass" : "test"
, "RemoteFolder": ""
, "Port" : 21
, "FileFilter": "*"//允许上传的文件类型。示例:jpg,bmp,gif,png,doc,xls,ppt,txt
};
示例-设置插件信息
var uploaderMgr = new FtpUploaderManager("FilePostLister");
uploaderMgr.Config["Server"] = "tel.ftp.u.115.com:21";
uploaderMgr.Config["UserName"] = "1199925";
uploaderMgr.Config["UserPass"] = "4b29da413f";
uploaderMgr.Config["RemoteFolder"] = "upload";
7. ActiveX对象
7.1. Xproer.FtpPartition对象
CLSID:9463F939-F485-404f-9FB0-8729E82DE11F
类型:ActiveX
多文件选择对象。弹出一个文件选择对话框,为用户提供选择多个文件的功能。
方法
名称
说明
ShowDialog
弹出文件选择对话框
GetSelectedFiles
获取用户选择的文件列表
GetSelectedFiles方法
获取用户选择的文件列表数组。
示例
下面的代码示例将会创建一个文件选择框,并弹出用户所选择的文件名称。
JavaScript:
function ShowSelectFileDlg()
{
var uploaderMgr = new FtpUploaderMgr();
var obj = new ActiveXObject("Xproer.FtpPartition");//创建文件选择对话框
if (!obj.ShowDialog()) return;
var list = obj.GetSelectedFiles();//获取用户选择的文件
if (list.lbound(1) == null) return;
for (var index = list.lbound(1); index
var obj = document.getElementById("FilePanel1");
obj.OnFileDrop = EventFileDrop;
function EventFileDrop()
{
var lister = document.getElementById("divFileLister");
var list = obj.GetSelectedFiles();//获取选择的文件
for (var index = list.lbound(1); index
页:
[1]