设为首页 收藏本站
查看: 515|回复: 0

[经验分享] HTTP文件上传插件开发文档-PHP

[复制链接]

尚未签到

发表于 2015-8-30 09:47:02 | 显示全部楼层 |阅读模式
  版权所有 2009-2014 荆门泽优软件有限公司
  保留所有权利
  官方网站:http://www.ncmem.com/
  产品首页:http://www.ncmem.com/webplug/http-uploader2/index.asp
  在线演示:http://www.ncmem.com/products/http-uploader2/index.html,
  开发文档-.NET:http://www.cnblogs.com/xproer/archive/2011/03/15/1984950.html
  开发文档-JSP:http://www.cnblogs.com/xproer/archive/2011/05/20/2051775.html
  开发文档-PHP:http://www.cnblogs.com/xproer/archive/2010/11/05/1870278.html
  升级日志:http://www.cnblogs.com/xproer/archive/2011/03/15/1985091.html
  资源下载:cab安装包(x86),cab安装包(x64),crx安装包,xpi安装包,exe安装包,开发文档,VC运行库,证书补丁,
  示例下载:ASP示例,ASP.NET示例,JSP示例,PHP示例,
  ​联系信箱:1085617561@qq.com
  联系QQ:1085617561
  更新记录:
  
           更新时间
      
           描述
      
           2012-05-29
      
           更新JSP文件上传示例代码。
      
           2012-08-30
      
           增加创建文件夹和删除文件示例代码。
      
           2012-09-10
      
           增加验证本地文件是否存在的示例代码,更新创建文件夹示例代码。
      
           2014-03-18
      
           完善正式包布署章节
  增加在本地运行DEMO章节
  增加在测试服务器中运行DEMO章节
  删除测试包布署说明章节。
      
  1. 在本地运行DEMO
  1.3. PHP
   DSC0000.jpg
  2. 在测试服务器中运行DEMO
    说明:如果客户端能够正常访问互联网,则不用在测试服务器中布署控件包。
  步骤如下:
  1.将控件包(HttpUploader.cab,HttpUploader64.cab)布署在测试服务器中
  HttpUploader.cab为IE(x86)浏览器控件安装包。
  HttpUploader64.cab为IE(x64)浏览器控件安装包。
  2.修改HttpUploader.js中的控件包地址。
DSC0001.jpg
  3.将上传地址改为测试服务器的上传地址。
DSC0002.jpg
  3. 正式包布署说明
    1.将HttpUploader.cab,HttpUploader64.cab上传到正式服务器中。
  HttpUploader.cab为IE(x86)浏览器控件安装包。
  HttpUploader64.cab为IE(x64)浏览器控件安装包。
  2.修改HttpUploader.js文件中的配置信息。
DSC0003.jpg
  4. 整合到现有系统中
    主要步骤:
  1.上传HttpUploader文件夹,控件包
  2.在引用页面添加js引用
  3.在引用页面编写控件初始化代码,并设置上传地址。
  1.上传HttpUploader文件夹
DSC0004.jpg
  2.在引用页面添加js引用
DSC0005.jpg
  3.编写控件初始化代码
DSC0006.jpg
  4.1. 上传控件相关文件
    上传下列文件和文件夹
  asp.net//请根据项目类型上传相应的文件夹,如果是PHP项目则上传PHP文件夹,如果是ASP项目则上传asp文件夹
  HttpUploader
  说明:
  请不要手动解压HttpUploader.cab文件,请将完整的HttpUploader.cab文件上传到服务器中。IE浏览器会自动安装CAB。CAB文件相当于是一个自动安装控件的脚本。
  4.2. 修改文件上传地址
    打开HttpUploader.js文件,找到Config配置代码
       this.Config = {
           "EncodeType"            : "GB2312"//UTF-8,GB2312
           , "Version"            : "2,5,31,65180"
           , "Company"            : "荆门泽优软件有限公司"
           , "License"            : ""
           , "FileFilter"         : "*" //文件类型。所有类型:*。自定义类型:jpg,png,gif,bmp
           , "AllowMultiSelect": 1 //多选开关。1:开启多选。2:关闭多选
           , "InitDir"            : "" //初始路径。示例:D:\\Soft
           , "AppPath"            : "" //网站虚拟目录名称。子文件夹 web
           , "PostUrl"            : "http://localhost:1890/asp.net/upload.aspx"
           , "CabPath"            : "http://www.ncmem.com/products/http-uploader2/HttpUploader/HttpUploader.cab"
           , "ClsidDroper"        : "4D2454F8-EB25-465f-B867-C2A3E9F3D4B4"
           , "ClsidUploader"       : "7AAE6FD3-C2F2-49d5-A790-1103848B3531"
           , "ClsidPartition"      : "6F3EB4AF-FC9C-4570-A686-88B4B427C6FE"
           //64bit
           , "CabPath64"           : "http://www.ncmem.com/products/http-uploader2/HttpUploader/HttpUploader64.cab"
           , "ClsidDroper64"       : "C9388115-887C-4d64-B175-F8F1AA5437BF"
           , "ClsidUploader64"    : "E95E03B2-8718-4871-B965-A9D21108DCD2"
           , "ClsidPartition64"   : "3AFFCB6D-55ED-4ada-A1EC-D7D87BA29E51"
       };
  修改PostUrl。PostUrl为文件上传页面的相对路径。
  地址的拼接在InitPath()方法中,可以根据实际情况来修改此函数。
  4.3. 修改CAB文件下载地址
    打开HttpUploader.js文件,找到Config配置代码
       this.Config = {
           "EncodeType"            : "GB2312"//UTF-8,GB2312
           , "Version"            : "2,5,31,65180"
           , "Company"            : "荆门泽优软件有限公司"
           , "License"            : ""
           , "FileFilter"         : "*" //文件类型。所有类型:*。自定义类型:jpg,png,gif,bmp
           , "AllowMultiSelect": 1 //多选开关。1:开启多选。2:关闭多选
           , "InitDir"            : "" //初始路径。示例:D:\\Soft
           , "AppPath"            : "" //网站虚拟目录名称。子文件夹 web
           , "PostUrl"            : "http://localhost:1890/asp.net/upload.aspx"
           , "CabPath"            : "http://www.ncmem.com/products/http-uploader2/HttpUploader/HttpUploader.cab"
           , "ClsidDroper"        : "4D2454F8-EB25-465f-B867-C2A3E9F3D4B4"
           , "ClsidUploader"       : "7AAE6FD3-C2F2-49d5-A790-1103848B3531"
           , "ClsidPartition"      : "6F3EB4AF-FC9C-4570-A686-88B4B427C6FE"
           //64bit
           , "CabPath64"           : "http://www.ncmem.com/products/http-uploader2/HttpUploader/HttpUploader64.cab"
           , "ClsidDroper64"       : "C9388115-887C-4d64-B175-F8F1AA5437BF"
           , "ClsidUploader64"    : "E95E03B2-8718-4871-B965-A9D21108DCD2"
           , "ClsidPartition64"   : "3AFFCB6D-55ED-4ada-A1EC-D7D87BA29E51"
       };
  修改CabPath的值。CabPath为cab文件的相对路径。
  4.4. 设置网站虚拟目录
    打开HttpUploader.js文件,找到Config配置代码
  this.Config = {
  "EncodeType" : "UTF-8"
  ,"CompanyLicensed" :"武汉命运科技有限公司"//请勿修改此处授权名称,如果需要修改请与我们联系。
  , "FileFilter" : "*"//文件类型。所有类型:*。自定义类型:jpg,png,gif,bmp
  , "AllowMultiSelect": 0//多选开关。1:开启多选。2:关闭多选
  , "AppPath" : ""//网站虚拟目录名称。子文件夹 web
  , "CabPath" : "http://服务器地址/HttpUploader/HttpUploader.cab#version=2,4,11,45688"//CAB文件地址
  , "PostUrl" : "http://服务器地址/asp.net/upload.aspx"//文件上传路径
  , "ClsidDroper" : "4D2454F8-EB25-465f-B867-C2A3E9F3D4B4"//拖拽控件
  , "ClsidUploader" : "7AAE6FD3-C2F2-49d5-A790-1103848B3531"//文件上传控件
  , "ClsidPartition" : "6F3EB4AF-FC9C-4570-A686-88B4B427C6FE"//文件选择控件
  };
  修改AppPath的值。AppPath为网站系统在Web服务器中的路径。
  4.5. 修改classid和codebase地址
    打开HttpUploader.js文件,修改控件的classid及codebase地址。
  this.ActiveX = {
  "Uploader" : "Xproer.HttpUploader"//请将Xproer修改为企业名称
  , "Partition" : "Xproer.HttpPartition"//请将Xproer修改为企业名称
  };
  this.Config = {
  "EncodeType" : "UTF-8"
  ,"CompanyLicensed" :"武汉命运科技有限公司"
  , "FileFilter" : "*"//文件类型。所有类型:*。自定义类型:jpg,png,gif,bmp
  , "AllowMultiSelect": 0//多选开关。1:开启多选。2:关闭多选
  , "AppPath" : ""//网站虚拟目录名称。子文件夹 web
  , "CabPath" : "http://服务器地址/HttpUploader/HttpUploader.cab#version=2,4,11,45688"//CAB文件地址
  , "PostUrl" : "http://服务器地址/asp.net/upload.aspx"//文件上传路径
  , "ClsidDroper" : "4D2454F8-EB25-465f-B867-C2A3E9F3D4B4"//拖拽控件
  , "ClsidUploader" : "7AAE6FD3-C2F2-49d5-A790-1103848B3531"//文件上传控件
  , "ClsidPartition" : "6F3EB4AF-FC9C-4570-A686-88B4B427C6FE"//文件选择控件
  };
  说明:
  为了避免与其它公司的控件产生冲突,每个控件的classid值都不相同。在购买产品后,我们会为每个公司单独生成序列号。
  当控件升级(版本号变化)或CAB文件地址更改,必须修改codebase的地址。否则用户的IE浏览器将无法正常加载控件。
  请确保codebase的地址与示例中的地址一致,version字符不能丢失,版本号中间不能有空格。
  在用户购买产品后,我们会为每个用户单独生成projid。如果公司是QQ,则ProjID如下:
  QQ.HttpUploader
  QQ.HttpPartition
  4.6. 设置服务器编码
    打开HttpUploader.js文件,找到Config配置代码
  this.Config = {
  "EncodeType" : "UTF-8"//必须与服务器保持一致
  ,"CompanyLicensed" :"武汉命运科技有限公司"
  , "FileFilter" : "*"//文件类型。所有类型:*。自定义类型:jpg,png,gif,bmp
  , "AppPath" : ""//网站虚拟目录名称。子文件夹 web
  , "CabPath" : "http://服务器地址/HttpUploader/HttpUploader.cab#version=2,4,11,45688"//CAB文件地址
  , "PostUrl" : "http://服务器地址/asp.net/upload.aspx"//文件上传路径
  , "ClsidDroper" : "4D2454F8-EB25-465f-B867-C2A3E9F3D4B4"//拖拽控件
  , "ClsidUploader" : "7AAE6FD3-C2F2-49d5-A790-1103848B3531"//文件上传控件
  , "ClsidPartition" : "6F3EB4AF-FC9C-4570-A686-88B4B427C6FE"//文件选择控件
  };
  修改EncodeType的值。EncodeType为文件上传页面的编码,此编码必须与网站保持一致。因为Http文件上传控件会根据此编码类型来对中文文件名称进行编码处理。示例如下:
  如果网站的编码是GB2312,EncodeType = "GB2312"
  如果网站的编码是UTF-8,EncodeType = "UTF-8"
  4.7. 在页面中引用
    1.添加头文件
  2.添加引用代码
  在<head></head>标签中间添加下列代码
  <link href=&quot;HttpUploader/HttpUploader.css&quot; type=&quot;text/css&quot; rel=&quot;Stylesheet&quot;/>
  <script src=&quot;HttpUploader/jquery-1.3.2.min.js&quot; type=&quot;text/javascript&quot;></script>
  <script src=&quot;HttpUploader/HttpUploader.js&quot; type=&quot;text/javascript&quot; charset=&quot;utf-8&quot;></script>
  在<body></body>标签中间的适当位置添加下列代码:
  <script type=&quot;text/javascript&quot; language=&quot;javascript&quot;>
  var upMgr = new HttpUploaderMgr();
  upMgr.SetFileFilter(&quot;aspx,asp,php&quot;);
  upMgr.Config[&quot;PostUrl&quot;] = &quot;http://服务器地址/asp.net/upload.aspx&quot;;//一般推荐在HttpUploader.js中设置。这样在多个页面中引用时不需要再次设置。
  //与文件同时上传的附加信息。
  upMgr.Fields[&quot;UserName&quot;] = &quot;test&quot;;
  upMgr.Fields[&quot;UserPass&quot;] = &quot;test&quot;;
  upMgr.Load();
  window.onload = function()
  {
  upMgr.Init();
  };
  </script>
  5. 自动拼接路径
    如果域名会经常变动不是固定域名,可以使用自动拼接路径函数InitPath()来简化控件布署。InitPath()函数的主要作用就是帮助开发人员拼接字符串。开发人员也可以根据自已的业务逻辑情况来修改此函数。
  以下示例演示如何使用自动拼接路径
  修改HttpUploader.js中的路径
  this.Config = {
  &quot;EncodeType&quot; : &quot;UTF-8&quot;
  ,&quot;CompanyLicensed&quot; :&quot;武汉命运科技有限公司&quot;
  , &quot;FileFilter&quot; : &quot;*&quot;//文件类型
  , &quot;AppPath&quot; : &quot;&quot;//网站虚拟目录名称。子文件夹 web
  , &quot;CabPath&quot; : &quot;HttpUploader/HttpUploader.cab#version=2,4,11,45688&quot;//CAB文件地址。使用自动拼接路径时只写CAB地址的相对路径。
  , &quot;PostUrl&quot; : &quot;upload.aspx&quot;//文件上传路径,使用自动拼接路径时只写上传地址的相对路径
  , &quot;ClsidDroper&quot; : &quot;4D2454F8-EB25-465f-B867-C2A3E9F3D4B4&quot;//拖拽控件
  , &quot;ClsidUploader&quot; : &quot;7AAE6FD3-C2F2-49d5-A790-1103848B3531&quot;//文件上传控件
  , &quot;ClsidPartition&quot; : &quot;6F3EB4AF-FC9C-4570-A686-88B4B427C6FE&quot;//文件选择控件
  };
  在Load函数中调用InitPath
  //在外部调用。
  this.Load = function()
  {
  this.InitPath();//自动拼接路径
  }
  在页面引用代码中设置AppPath值
  <script type=&quot;text/javascript&quot; language=&quot;javascript&quot;>
  var upMgr = new HttpUploaderMgr();
  upMgr.Config[&quot;AppPath&quot;] = &quot;/www/&quot;;//设置网站目录
  upMgr.Load();
  window.onload = function()
  {
  upMgr.Init();
  };
  </script>
  调用InitPath()后,PostUrl和CabPath将会被自动拼接成下列字符串
  PostUrl = http://www.ncmem.com/upload.aspx
  CabPath = http://www.ncmem.com/HttpUploader/HttpUploader.cab#version=2,4,11,45688
  6. 升级控件
    一般情况下,控件升级后HttpUploader.cab会更新,同时版本号也会更新。
  主要步骤如下:
  1. 重新上传HttpUploader.cab文件。
  2. 更新HttpUploader.js中的版本号。
  6.1. 更新HttpUploader.js中的版本号
    Version属性为版本号。
  this.Config = {
  &quot;EncodeType&quot; : &quot;GB2312&quot;//UTF-8,GB2312
  , &quot;Version&quot; : &quot;2,5,31,65180&quot;
  , &quot;Company&quot; : &quot;荆门泽优软件有限公司&quot;
  , &quot;License&quot; : &quot;&quot;
  , &quot;FileFilter&quot; : &quot;*&quot;//文件类型。所有类型:*。自定义类型:jpg,png,gif,bmp
  , &quot;AllowMultiSelect&quot; : 1//多选开关。1:开启多选。2:关闭多选
  , &quot;InitDir&quot; : &quot;&quot;//初始路径。示例:D:\\Soft
  , &quot;AppPath&quot; : &quot;&quot;//网站虚拟目录名称。子文件夹 web
  , &quot;PostUrl&quot; : &quot;http://localhost:1890/asp.net/upload.aspx&quot;
  , &quot;CabPath&quot; : &quot;http://www.ncmem.com/products/http-uploader2/HttpUploader/HttpUploader.cab&quot;
  , &quot;ClsidDroper&quot; : &quot;4D2454F8-EB25-465f-B867-C2A3E9F3D4B4&quot;
  , &quot;ClsidUploader&quot; : &quot;7AAE6FD3-C2F2-49d5-A790-1103848B3531&quot;
  , &quot;ClsidPartition&quot; : &quot;6F3EB4AF-FC9C-4570-A686-88B4B427C6FE&quot;
  //64bit
  , &quot;CabPath64&quot; : &quot;http://www.ncmem.com/products/http-uploader2/HttpUploader/HttpUploader64.cab&quot;
  , &quot;ClsidDroper64&quot; : &quot;C9388115-887C-4d64-B175-F8F1AA5437BF&quot;
  , &quot;ClsidUploader64&quot; : &quot;E95E03B2-8718-4871-B965-A9D21108DCD2&quot;
  , &quot;ClsidPartition64&quot; : &quot;3AFFCB6D-55ED-4ada-A1EC-D7D87BA29E51&quot;
  };
  说明:
  更新版本号后,IE会自动提示用户安装最新的控件。
  7. 用户接口
  7.1. 配置上传地址
    方法1:在引用页面设置上传地址
DSC0007.jpg
  方法2:在HttpUploader.js中设置上传地址。
DSC0008.jpg
  注意:如果同时在引用页面和HttpUploader.js中配置了上传地址,那么引用页面的设置将会覆盖HttpUploader.js中的设置,即只有引用页面的设置有效。
  7.2. 设置服务器编码方式
    <script type=&quot;text/javascript&quot; language=&quot;javascript&quot;>
  var uploaderMgr = new HttpUploaderMgr();
  uploaderMgr.Config[&quot;EncodeType&quot;] = &quot;GB2312&quot;;//设置上传编码。必须与网站配置相同。建议在HttpUploader.js中设置,这样可以在多个页面引用,而不需要再次设置。
  uploaderMgr.Load();//加载控件
  window.onload = function()
  {
  uploaderMgr.Init();//初始化控件
  }
  </script>
  7.3. 设置文件类型
    <script type=&quot;text/javascript&quot; language=&quot;javascript&quot;>
  var uploaderMgr = new HttpUploaderMgr();
  //设置允许上传的文件类型,使用英文逗号分(,)隔。如果允许所有的文件类型,则使用*
  uploaderMgr.Config[&quot;FileFilter&quot;] = &quot;jpg,png,bmp,gif,doc,pdf,txt&quot;;
  uploaderMgr.Load();//加载控件
  window.onload = function()
  {
  uploaderMgr.Init();//初始化控件
  }
  </script>
  7.4. 设置附加信息
    附加信息的作用就是在上传图片的同时向服务器提交额外的字段信息。比如当用户向服务器上传截图时,服务器需要知道是哪位用户上传的截图,这时可以将用户ID添加到附加信息中,这样服务器在获取截图信息的同时也能够根据附加信息知道是哪位用户上传的截图。
  客户端:
  fileMgr.Fields[&quot;UserName&quot;] = &quot;test&quot;;
  服务端:
  string fname = Request.Form[&quot;UserName&quot;];
  开发人员可以根据自已的业务需求来扩展附加信息:
  客户端:
  fileMgr.Fields[&quot;f1&quot;] = &quot;f1&quot;;
  fileMgr.Fields[&quot;f2&quot;] = &quot;f2&quot;;
  fileMgr.Fields[&quot;f3&quot;] = &quot;f3&quot;;
  fileMgr.Fields[&quot;f4&quot;] = &quot;f4&quot;;
  fileMgr.Fields[&quot;f5&quot;] = &quot;f5&quot;;
  服务端(ASP.NET):
  string f1 = Request.Form[&quot;f1&quot;];
  string f1 = Request.Form[&quot;f2&quot;];
  string f1 = Request.Form[&quot;f3&quot;];
  string f1 = Request.Form[&quot;f4&quot;];
  string f1 = Request.Form[&quot;f5&quot;];
  7.5. 上传本地文件
    使用步骤如下:
  1.调用AddFile函数添加本地文件,注意路径需要使用双斜框(\\)
  2.调用PostFirst函数开始上传文件。
  <script type=&quot;text/javascript&quot; language=&quot;javascript&quot;>
  var fileMgr = new HttpUploaderMgr();
  fileMgr.Load();//加载控件
  window.onload = function()
  {
  fileMgr.Init();//初始化控件
  fileMgr.AddFile(&quot;D:/Soft/QQ2010.exe&quot;);//在部分电脑中解析\\字符串会出现错误,所以使用/代替
  fileMgr.PostFirst();
  };
  </script>
  7.6. 删除本地文件
    var obj = new ActiveXObject(&quot;Xproer.HttpPartition&quot;);
  obj.RemoveFile(&quot;D:\\Soft\\QQ2012.exe&quot;);//删除本地文件
  7.7. 创建文件夹
    var obj = new ActiveXObject(&quot;Xproer.HttpPartition&quot;);
  //自动创建文件夹
  if(obj.CreateFolder(&quot;D:\\Soft\\ImageTool&quot;))
  {
  alert(&quot;创建文件夹成功&quot;);
  }
  else
  {
  alert(&quot;创建文件夹失败&quot;);
  }
  7.8. 验证本地文件是否存在
    function testExistFile()
  {
  var obj = new ActiveXObject(&quot;Xproer.HttpPartition&quot;);
  if (obj.ExistFile(&quot;D:\\QQ2012.exe&quot;))
  {
  alert(&quot;文件存在&quot;);
  }
  else
  {
  alert(&quot;文件不存在&quot;);
  }
  }
2.      JavaScript对象
  2.1.   FileUploader对象
  类型:JavaScript
文件上传对象的包装类,用户在实际的项目中只需要创建FileUploader对象,然后通过FileUploader对象就可以进行文件上传操作。

语法:
  
   JavaScript(声明)
   function FileUploader() { }

  方法
     
            
         
           名称
         
           说明
         
           
         
           Ready
         
           指示文件上传对象准备完毕
         
           
         
           Post
         
           开始上传文件
         
           
         
           Stop
         
           停止文件上传
         
           
         
           PostNext
         
           继续传输上传队列中的下一个文件
         


  Ready方法
  将上传任务状态设置为准备状态。
  Post方法
  开始上传文件。
说明:此函数将会自动实现断点续传功能。如果当前任务文件只上传了一半,则在下次开始时XSUploader组件将会自动定位到上次上传的位置继续上传数据。
  Stop方法
  停止上传任务。
  PostNext方法
  继续上传队列中下一个任务。

  属性
     
            
         
           名称
         
           说明
         
           
         
           pMsg
         
           消息对象。
         
           
         
           
pProcess

         
           上传进度条对象
         
           
         
           
pPercent

         
           上传进度百分比。
         
           
         
           
pButton

         
           控制按钮
         
           
         
           
TimeOutID

         
           定时器
         
           
         
           Ext
         
           文件扩展名。例:
         
           
         
           LocalFile
         
           不包含路径的文件名称。例:qq.exe
         
           
         
           LocalFileName
         
           包含完整路径的本地文件名称。例:C:\qq.exe
         
           
         
           FileLength
         
           文件大小。以字节为单位。
1MB=1024KB
1KB=1024byte
         


  2.2.   FileTransferManager对象
  类型:JavaScript
上传文件管理类。

  方法
  AddFile方法
  添加一个文件到上传对列中
语法:
void AddFile(fid);
参数:
     fid
新上传任务的唯一文件ID,此ID用来区域不同的上传任务。

AddFeidl方法
  PostFirst方法
  开始上传队列中的第一个文件。
语法:
void PostFirst()

  Exist方法
  检查上传队列中是否存在指定文件。
说明:此函数是根据本地文件的完整路径来检测的。
bool Exist();
返回值:
     true
表示存在。
     false
不存在。
  SetFileFilter方法
  设置过滤的文件类型。
语法:
void SetFileFilter(filter)
参数:
     filter 文件类型字符串。由逗号分隔。示例:exe,jpg,php

  属性
  Fields属性
  上传时附加的额外信息。

注意:此属性暂时不支持中文字符串。

以下示例演示上传时添加用户名和密码的额外信息:
var manager = new FileTransferManager(&quot;FilePostLister&quot;, &quot;UploaderTemplate&quot;);

manager.Fields[&quot;UserName&quot;] = &quot;test&quot;;

manager.Fields[&quot;UserPass&quot;] = &quot;test&quot;;

  Config属性
  提供全局配置信息。

语法:
this.Config = {

         &quot;EncodeType&quot; : &quot;UTF-8&quot;

         &quot;PostUrl&quot; : &quot;http://www.ncmem.com/upload.aspx&quot;

     };


  EncodeType值
  服务器编码方式。
此属性必须和web.config配置文件对应。

如果服务器端编码方式是UTF-8
<globalization requestEncoding=&quot;utf-8&quot; responseEncoding=&quot;utf-8&quot;/>
则客户端也必须是UTF-8
var manager = new FileTransferManager(&quot;FilePostLister&quot;);

manager.Config[&quot;EncodeType&quot;] = &quot;UTF-8&quot;;

如果服务端编码方式是GB2312
<globalization requestEncoding=&quot;gb2312&quot; responseEncoding=&quot;gb2312&quot;/>
则客户端也必须是GB2312
var manager = new FileTransferManager(&quot;FilePostLister&quot;);

manager.Config[&quot;EncodeType&quot;] = &quot;GB2312&quot;;

  PostUrl值
  接收处理上传文件的URL。

  3.      ActiveX对象
  3.1.   Xproer.HttpUploaderPartition2对象
  CLSIDBC5E2E5D-49E2-4d34-A606-902640DB92AC
类型:ActiveX
多文件选择对象。弹出一个文件选择对话框,为用户提供选择多个文件的功能。
  方法
     
            
         
           名称
         
           说明
         
           
         
           ShowDialog
         
           弹出文件选择对话框
         
           
         
           GetSelectedFiles
         
           获取用户选择的文件列表
         


  GetSelectedFiles方法
  获取用户选择的文件列表数组。

  示例
  下面的代码示例将会创建一个文件选择框,并弹出用户所选择的文件名称。
  
   JavaScript:
   
<script type=&quot;text/javascript&quot; language=&quot;javascript&quot;>

     function ShowSelectFileDlg()

     {

         var manager = new FileTransferManager(&quot;FilePostLister&quot;, &quot;UploaderTemplate&quot;);

         var obj = new ActiveXObject(manager.ActiveX[&quot;Partition&quot;]);;//创建文件选择对话框


         if (!obj.ShowDialog()) return;

         var list = obj.GetSelectedFiles();//获取用户选择的文件

         if (list == null) return;

         if (list.lbound(1) == null) return;


         for (var index = list.lbound(1); index <= list.ubound(1); index++)

         {

              if (!manager.Exist(list.getItem(index)))

              {

                   manager.AddFile(list.getItem(index));

              }

         }

         manager.PostFirst();

     }

</script>

  3.2.   Xproer.HttpUploader2对象
  CLSID33A128F3-9CA3-4a7f-A1FE-1DB6BF5156AA
类型:ActiveX
HTTP文件上传对象,负责文件具体的上传和续传工作。

  属性
     
            
         
           名称
         
           说明
         
           
         
           FileID
         
           文件ID。必须唯一。
         
           
         
           LocalFile
         
           包含完整路径的本地文件名称。例:D:\QQ.exe
         
           
         
           IP
         
           处理请求的URL地址。例:http://www.ncmem.com/upload.aspx
         


  事件
     
            
         
           名称
         
           说明
         
           
         
           OnComplete
         
           在文件上传完成时发生
         
           
         
           OnPost
         
           每当向服务器传输成功一部分数据时发生
         
           
         
           OnStop
         
           在文件上传停止时发生
         
           
         
           OnError
         
           在文件上传出现错误时发生
         


  OnComplete事件
  传输完成事件,当文件成功上传完毕后,系统将会调用此方法  
参数:
     arguments[0]
         文件ID。
  OnPost事件
  传输数据事件。每当XSUploader插件成功向服务器传输二进制数据后将触发此事件。
参数:
arguments[0]
文件ID,用于区分不同的上传任务
     arguments[1]
已上传字节
     arguments[2]
         传输速度
     arguments[3]
         已上传百分比。
  OnStop事件
  传输停止事件,当上传任务停止时系统将会自动调用此方法
参数:
     arguments[0]
文件ID。
  OnError事件
  传输错误事件,当传输出现错误时系统将会自动调用此事件。
参数:
     arguments[0]
文件ID。
     arguments[1]
错误码   
   
           
&quot;0&quot;:

         
           
&quot;启动网络环境错误&quot;,

         
           
&quot;1&quot;:

         
           
&quot;SOCKET错误&quot;,

         
           
&quot;2&quot;:

         
           
&quot;打开SOCKET错误&quot;,

         
           
&quot;3&quot;:

         
           
&quot;创建SOCKET错误&quot;,

         
           
&quot;4&quot;:

         
           
&quot;连接服务器错误&quot;,

         
           
&quot;5&quot;:

         
           
&quot;发送数据错误&quot;,

         
           
&quot;6&quot;:

         
           
&quot;未设置本地文件&quot;,

         
           
&quot;7&quot;:

         
           
&quot;本地文件不存在&quot;,

         
           
&quot;8&quot;:

         
           
&quot;不能读取本地文件&quot;,

         
           
&quot;9&quot;:

         
           
&quot;公司未授权&quot;,

         
           
&quot;10&quot;:

         
           
&quot;未设置IP&quot;,

         
           
&quot;11&quot;:

         
           
&quot;域名未授权&quot;,

         


  示例
  下面的代码将会创建一个上传项,并将本地C盘下的myfile.txt文件上传到服务端,并以myfile.txt保存。
  
   JavaScript
   
var upFile = new FileUploader(1);//这里创建了一个文件上传任务,并将文件ID设置为1

upFile.ATL.PostUrl = &quot;http://www.ncmem.com/upload.aspx&quot;;//设置上传地址

upFile.ATL.LocalFileName = &quot;C:\\myfile.txt&quot;;//设置要上传的本地文件

//设置事件,这些事件必须设置,否则上传任务将无法执行

upFile.ATL.OnComplete = function() { }

upFile.ATL.OnPost = function() { }

upFile.ATL.OnStop = function() { }

upFile.ATL.OnError = function() { }

upFile.Post(); //开始上传

  3.3.   XproerWebPlug.FileDroper对象
  CLSID7193B258-CA68-4eee-A64A-43C7E3BD1857
类型:ActiveX
文件拖放面板,为用户提供文件的拖放功能。

  事件
  OnFileDrop事件
  文件拖放事件。当用户从资源管理器向拖放面板中拖放文件时此事件将会自动被调用。

参数:
     arguments[0]
文件列表数组

  示例
  
<HTML>

<HEAD>

<TITLE>New Page</TITLE>

</HEAD>

<BODY>


<OBJECT ID=&quot;FilePanel1&quot; WIDTH=192 HEIGHT=192 CLASSID=&quot;clsid: AF145FF6-EF91-4C91-BD85-D4ECCA224D27&quot; DATA=&quot;DATA:application/x-oleobject;BASE64,P0yJ/coEwUiWnGww8Tau4AADAADYEwAA2BMAAA==&quot;>

</OBJECT>

<div id=&quot;divFileLister&quot;></div>

<script language=&quot;javascript&quot; type=&quot;text/javascript&quot;>

     var obj = document.getElementById(&quot;FilePanel1&quot;);

     obj.OnFileDrop = EventFileDrop;

     function EventFileDrop()

     {

         var lister = document.getElementById(&quot;divFileLister&quot;);

         var list = obj.GetSelectedFiles();//获取选择的文件

         for (var index = list.lbound(1); index <= list.ubound(1); ++index)

         {

              lister.innerHTML += &quot;<p>文件名:&quot; + list.getItem(index) + &quot;</p>&quot;;

         }

     }

</script>

</BODY>

</HTML>


  4.      UI模板
  您可以根据实际需求来修改以下模板。

  
   HTML:
   
<div class=&quot;UploaderItem&quot; id=&quot;UploaderTemplate&quot;>

     <div class=&quot;UploaderItemLeft&quot;>

         <div class=&quot;FileName top-space&quot;>HttpUploader程序开发.pdf</div>

         <div class=&quot;ProcessBorder top-space&quot;>

              <div class=&quot;Process&quot;></div>

         </div>

         <div class=&quot;PostInf top-space&quot;>已上传:15.3MB 速度:20KB/S 剩余时间:10:02:00</div>

     </div>

     <div class=&quot;UploaderItemRight&quot;>

         <a class=&quot;Btn&quot; href=&quot;javascript:void(0)&quot;>取消</a>

         <div class=&quot;ProcessNum&quot;>35%</div>

     </div>

</div>

  5.      HTML示例
  以下示例将会弹出一个对话框并将用户选定的文件上传到服务器中。
  
   JavaScript:
   
<script type=&quot;text/javascript&quot; language=&quot;javascript&quot;>

    function ShowSelectFileDlg()

    {

        var manager = new FileTransferManager(&quot;FilePostLister&quot;, &quot;UploaderTemplate&quot;);

        var obj = new ActiveXObject(manager.ActiveX[&quot;Partition&quot;]);

        if (!obj.ShowDialog()) return;//打开选择文件对话框

        

        var list = obj.GetSelectedFiles();//获取用户选择的文件

        if (list == null) return;

        if (list.lbound(1) == null) return;

        for (var index = list.lbound(1); index <= list.ubound(1); index++)

        {

            if (!manager.Exist(list.getItem(index)))

            {

                manager.AddFile(list.getItem(index));

            }

        }

        manager.PostFirst();

    }

</script>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106195-1-1.html 上篇帖子: PHP实现的Telnet 【引用】 下篇帖子: $_FILES['userfile']['error'] 错误码 (取自PHP手册)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表