Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 5th, 2012  |  syntax: None  |  size: 3.57 KB  |  hits: 10  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. import flash.net.FileReferenceList;
  2. import flash.net.FileReference;
  3. import flash.events.*;
  4.  
  5. var currentFile = 0;
  6. var percents = 0;
  7. var LIST_COMPLETE:String = "listComplete";
  8. var FileLoader:FileReferenceList = new FileReferenceList();
  9. var pendingFiles = new Array();
  10. var uploadURL = new URLRequest();
  11. uploadURL.url = "http://localhost/upl_photos/uploader.php";
  12.  
  13. var pr_bar_width = progress_bar.width / 100;
  14. progress_bar.width = 0;
  15. pr_percents.text = '';
  16.  
  17. upd_files.addEventListener(MouseEvent.CLICK, clickHandler);
  18. FileLoader.addEventListener(Event.SELECT, selectHandler);
  19. addEventListener(LIST_COMPLETE, listCompleteHandler);
  20.  
  21.  
  22. function clickHandler(event:MouseEvent):void
  23. {
  24.         FileLoader.browse( [ new FileFilter("Изображения(*.jpg;*.jpeg;*.gif;*.png)", "*.jpg;*.jpeg;*.gif;*.png") ]);
  25. }
  26. function addPendingFile(file:FileReference):void
  27. {
  28.         trace("addPendingFile: name=" + file.name);
  29.         pendingFiles.push(file);
  30.         file.addEventListener(Event.OPEN, openHandler);
  31.         file.addEventListener(Event.COMPLETE, completeHandler);
  32.         file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
  33.         file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
  34.         file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
  35.         file.upload(uploadURL,'file');
  36.         trace('sent');
  37. }
  38. function selectHandler(event:Event):void
  39. {
  40.         var file:FileReference;
  41.         for (var i:uint = 0; i < FileLoader.fileList.length; i++)
  42.         {
  43.                 file = FileReference(FileLoader.fileList[i]);
  44.                 addPendingFile(file);
  45.         }
  46. }
  47. function cancelHandler(event:Event):void
  48. {
  49.         var file:FileReference = FileReference(event.target);
  50.         trace("cancelHandler: name=" + file.name);
  51. }
  52. function openHandler(event:Event):void
  53. {
  54.         var file:FileReference = FileReference(event.target);
  55.         trace("openHandler: name=" + file.name);
  56. }
  57. function progressHandler(event:ProgressEvent):void
  58. {
  59.         var file:FileReference = FileReference(event.target);
  60.         file_pending.text = 'Загружается файл ' + currentFile + ' из ' + FileLoader.fileList.length;
  61.         trace('Загружается файл '+currentFile+' из '+FileLoader.fileList.length);
  62.         percents = Math.round((event.bytesLoaded/event.bytesTotal)*100);
  63.         progress_bar.width = percents * pr_bar_width;
  64.         pr_percents.text = percents + '%';
  65.         trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal + ' ' + percents+'%');
  66. }
  67. function completeHandler(event:Event):void
  68. {
  69.         var file:FileReference = FileReference(event.target);
  70.         trace("completeHandler: name=" + file.name);
  71.         removePendingFile(file);
  72. }
  73. function httpErrorHandler(event:Event):void
  74. {
  75.         var file:FileReference = FileReference(event.target);
  76.         info_text.text = "httpErrorHandler: name=" + file.name;
  77. }
  78. function ioErrorHandler(event:Event):void
  79. {
  80.         var file:FileReference = FileReference(event.target);
  81.         info_text.text = "ioErrorHandler: name=" + file.name;
  82. }
  83. function securityErrorHandler(event:Event):void
  84. {
  85.         var file:FileReference = FileReference(event.target);
  86.         info_text.text = "securityErrorHandler: name=" + file.name + " event=" + event.toString();
  87. }
  88. function removePendingFile(file:FileReference):void
  89. {
  90.         for (var i:uint; i < pendingFiles.length; i++)
  91.         {
  92.                 if (pendingFiles[i].name == file.name)
  93.                 {
  94.                         pendingFiles.splice(i, 1);
  95.                         if (pendingFiles.length == 0)
  96.                         {
  97.                                 doOnComplete();
  98.                         }
  99.                         return;
  100.                 }
  101.         }
  102. }
  103. function doOnComplete():void
  104. {
  105.         var event:Event = new Event(LIST_COMPLETE);
  106.         dispatchEvent(event);
  107. }
  108. function listCompleteHandler(event:Event):void
  109. {
  110.         info_text.text = 'Файлы успешно загружены!';
  111. }