加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex实现多文件批量上传

发布时间:2020-12-15 01:19:26 所属栏目:百科 来源:网络整理
导读:? 分类: Flex4 2011-08-04 17:20 174人阅读 评论(0) 收藏 举报 ?下例说明如何使用事件来管理多个文件的上载。CustomFileReferenceList 类扩展了 FileReferenceList,它包含一个 complete 事件,在上载 FileReferenceList 对象中的各个文件时将分派该事件。F
?
分类: Flex4 174人阅读 评论(0) 收藏 举报
?下例说明如何使用事件来管理多个文件的上载。CustomFileReferenceList 类扩展了 FileReferenceList,它包含一个 complete 事件,在上载 FileReferenceList 对象中的各个文件时将分派该事件。FileReferenceList 对象中的所有文件上载完毕后,将分派 FileReferenceListExample 类中的 LIST_COMPLETE 事件。

要运行该示例,请插入一个编写好以接受 http://www.[yourDomain].com/yourUploadHandlerScript.cfm 处的文件上载的脚本。根据 SWF 文件的位置及文件的上载位置,您可能还需要编译 SWF 文件,将“本地回放安全性”设置为“只访问网络”,或更新 Flash ? Player 的安全设置,以允许此文件网络访问。如果上载服务器为远程服务器,并且要从桌面计算机运行此示例,则服务器必须具有 crossdomain.xml 文件。

view plain copy to clipboard print ?
  1. package?{??
  2. ????import?flash.display.Sprite;??
  3. ????import?flash.events.*;??
  4. ????import?flash.net.FileReference;??
  5. ????import?flash.net.FileReferenceList;??
  6. ???
  7. ????public?class?FileReferenceListExample?extends?Sprite?{??
  8. ????????public?static?var?LIST_COMPLETE:String?=?"listComplete";??
  9. ????????public?function?FileReferenceListExample()?{??
  10. ????????????initiateFileUpload();??
  11. ????????}??
  12. ??
  13. ????????private?function?initiateFileUpload():void?{??
  14. ????????????var?fileRef:CustomFileReferenceList?=?new?CustomFileReferenceList();??
  15. ????????????fileRef.addEventListener(FileReferenceListExample.LIST_COMPLETE,?listCompleteHandler);??
  16. ????????????fileRef.browse(fileRef.getTypes());??
  17. ????????}??
  18. ??
  19. ????????private?function?listCompleteHandler(event:Event):void?{??
  20. ????????????trace("listCompleteHandler");??
  21. ????????}??
  22. ????}??
  23. }??
  24. ???
  25. import?flash.events.*;??
  26. import?flash.net.FileReference;??
  27. import?flash.net.FileReferenceList;??
  28. import?flash.net.FileFilter;??
  29. import?flash.net.URLRequest;??
  30. ???
  31. class?CustomFileReferenceList?extends?FileReferenceList?{??
  32. ????private?var?uploadURL:URLRequest;??
  33. ????private?var?pendingFiles:Array;??
  34. ??
  35. ????public?function?CustomFileReferenceList()?{??
  36. ????????uploadURL?=?new?URLRequest();??
  37. ????????uploadURL.url?=?"http://www.[yourDomain].com/yourUploadHandlerScript.cfm";??
  38. ????????initializeListListeners();??
  39. ????}??
  40. ??
  41. ????private?function?initializeListListeners():void?{??
  42. ????????addEventListener(Event.SELECT,?selectHandler);??
  43. ????????addEventListener(Event.CANCEL,?cancelHandler);??
  44. ????}??
  45. ??
  46. ????public?function?getTypes():Array?{??
  47. ????????var?allTypes:Array?=?new?Array();??
  48. ????????allTypes.push(getImageTypeFilter());??
  49. ????????allTypes.push(getTextTypeFilter());??
  50. ????????return?allTypes;??
  51. ????}??
  52. ???
  53. ????private?function?getImageTypeFilter():FileFilter?{??
  54. ????????return?new?FileFilter("Images?(*.jpg,?*.jpeg,?*.gif,?*.png)",?"*.jpg;*.jpeg;*.gif;*.png");??
  55. ????}??
  56. ???
  57. ????private?function?getTextTypeFilter():FileFilter?{??
  58. ????????return?new?FileFilter("Text?Files?(*.txt,?*.rtf)",?"*.txt;*.rtf");??
  59. ????}??
  60. ???
  61. ????private?function?doOnComplete():void?{??
  62. ????????var?event:Event?=?new?Event(FileReferenceListExample.LIST_COMPLETE);??
  63. ????????dispatchEvent(event);??
  64. ????}??
  65. ???
  66. ????private?function?addPendingFile(file:FileReference):void?{??
  67. ????????trace("addPendingFile:?name="?+?file.name);??
  68. ????????pendingFiles.push(file);??
  69. ????????file.addEventListener(Event.OPEN,?openHandler);??
  70. ????????file.addEventListener(Event.COMPLETE,?completeHandler);??
  71. ????????file.addEventListener(IOErrorEvent.IO_ERROR,?ioErrorHandler);??
  72. ????????file.addEventListener(ProgressEvent.PROGRESS,?progressHandler);??
  73. ????????file.addEventListener(SecurityErrorEvent.SECURITY_ERROR,?securityErrorHandler);??
  74. ????????file.upload(uploadURL);??
  75. ????}??
  76. ???
  77. ????private?function?removePendingFile(file:FileReference):void?{??
  78. ????????for?(var?i:uint;?i?<?pendingFiles.length;?i++)?{??
  79. ????????????if?(pendingFiles[i].name?==?file.name)?{??
  80. ????????????????pendingFiles.splice(i,?1);??
  81. ????????????????if?(pendingFiles.length?==?0)?{??
  82. ????????????????????doOnComplete();??
  83. ????????????????}??
  84. ????????????????return;??
  85. ????????????}??
  86. ????????}??
  87. ????}??
  88. ???
  89. ????private?function?selectHandler(event:Event):void?{??
  90. ????????trace("selectHandler:?"?+?fileList.length?+?"?files");??
  91. ????????pendingFiles?=?new?Array();??
  92. ????????var?file:FileReference;??
  93. ????????for?(var?i:uint?=?0;?i?<?fileList.length;?i++)?{??
  94. ????????????file?=?FileReference(fileList[i]);??
  95. ????????????addPendingFile(file);??
  96. ????????}??
  97. ????}??
  98. ???
  99. ????private?function?cancelHandler(event:Event):void?{??
  100. ????????var?file:FileReference?=?FileReference(event.target);??
  101. ????????trace("cancelHandler:?name="?+?file.name);??
  102. ????}??
  103. ???
  104. ????private?function?openHandler(event:Event):void?{??
  105. ????????var?file:FileReference?=?FileReference(event.target);??
  106. ????????trace("openHandler:?name="?+?file.name);??
  107. ????}??
  108. ???
  109. ????private?function?progressHandler(event:ProgressEvent):void?{??
  110. ????????var?file:FileReference?=?FileReference(event.target);??
  111. ????????trace("progressHandler:?name="?+?file.name?+?"?bytesLoaded="?+?event.bytesLoaded?+?"?bytesTotal="?+?event.bytesTotal);??
  112. ????}??
  113. ???
  114. ????private?function?completeHandler(event:Event):void?{??
  115. ????????var?file:FileReference?=?FileReference(event.target);??
  116. ????????trace("completeHandler:?name="?+?file.name);??
  117. ????????removePendingFile(file);??
  118. ????}??
  119. ???
  120. ????private?function?httpErrorHandler(event:Event):void?{??
  121. ????????var?file:FileReference?=?FileReference(event.target);??
  122. ????????trace("httpErrorHandler:?name="?+?file.name);??
  123. ????}??
  124. ???
  125. ????private?function?ioErrorHandler(event:Event):void?{??
  126. ????????var?file:FileReference?=?FileReference(event.target);??
  127. ????????trace("ioErrorHandler:?name="?+?file.name);??
  128. ????}??
  129. ???
  130. ????private?function?securityErrorHandler(event:Event):void?{??
  131. ????????var?file:FileReference?=?FileReference(event.target);??
  132. ????????trace("securityErrorHandler:?name="?+?file.name?+?"?event="?+?event.toString());??
  133. ????}??
  134. }??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读