2012-01-10 2 views
0

У меня есть следующий скрипт, который позволяет загружать файлы через PHP-скрипт на моем веб-сервере, но я надеялся превратить псевдокод в чистый скрипт действия. Кроме того, по какой-то причине мой индикатор выполнения не показывает фактический ход загрузки файла.Adobe Flex для чистого сценария действий. Как?

Вот PHP код:

<?php 

$tempFile = $_FILES['Filedata']['tmp_name']; 
$fileName = $_FILES['Filedata']['name']; 
$fileSize = $_FILES['Filedata']['size']; 

move_uploaded_file($tempFile, "./" . $fileName); 

?> 

Вот код Adobe Flex:

<?xml version="1.0" encoding="utf-8"?> 
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" 
       xmlns:mx="library://ns.adobe.com/flex/mx" 
       width="225" height="178" minWidth="955" minHeight="600"> 
    <fx:Declarations> 

    </fx:Declarations> 

<fx:Script> 
    <![CDATA[ 

     import flash.net.FileReference; 
     public var fileRef:FileReference = new FileReference(); 
     public function uploadDialog(e:MouseEvent):void{ 
      errLabel.text=""; 
      var imgType:FileFilter = new FileFilter("Images (*.GIF,*.JPG,*.PNG)","*.gif;*.jpg;*.png"); 
      var filterArray:Array=new Array(imgType); 
      fileRef.browse(filterArray); 
      fileRef.addEventListener(Event.SELECT,fileSelect); 
      fileRef.addEventListener(ProgressEvent.PROGRESS,fileProgress); 
      fileRef.addEventListener(Event.COMPLETE,fileComplete); 
     } 

     public function fileSelect(e:Event):void{ 
      var fileURL:URLRequest = new URLRequest("upload.php"); 
      try 
      { 
       //filepath.text=fileRef.name; 
       fileRef.upload(fileURL); 
      } 
      catch (err:Error) 
      { 
       errLabel.text="Unable to Upload File....."; 
      } 
     } 

     public function fileProgress(e:ProgressEvent):void 
     { 
      progBar.visible=true; 
     } 

     public function fileComplete(e:Event):void{ 

      errLabel.text="File Uploaded Sucessfully....." 
      progBar.visible=false; 

     } 

    ]]> 
</fx:Script> 


    <s:Label x="10" y="10" click="uploadDialog(event)" text="Upload ..."/> 
    <mx:ProgressBar id="progBar" x="10" y="26"/> 
    <s:Label id="errLabel" x="10" y="108" width="200" text="..."/> 

</s:Application> 
+0

Почему вы ожидаете ваш прогресс бар изменить, так как вы ничего не делаете для этого? –

+0

Код работает, кажется, есть прослушиватель событий для ProgressEvent, но я предполагаю, что PHP не сообщает о продолжении загрузки файлов, поэтому Action Script видит только начало и конец. Наверное, я просто поставлю спиннер. – ASPiRE

ответ

0

проверить это example: Вы должны установить maximum и minimum свойства и вызвать setProgress в вашем fileProgress функция

Есть два способа превратить гибкий код в чистый as3:
* набор <keep-generated-actionscript>true</keep-generated-actionscript> в гибком-config.xml
* переписать код без использования MXML в качестве чистого as3 проекта

+0

Кажется, что ничто не загружает индикатор выполнения во время процесса загрузки. – ASPiRE