tonwei139 发表于 2015-5-29 09:46:30

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]
查看完整版本: FTP文件上传控件开发文档-Xproer.FtpUploader