2012-01-10 7 views
0

私はファイルをPHPスクリプトを通して私のWebサーバーにアップロードすることができる次のスクリプトを持っていますが、私は疑似コードを純粋なアクションスクリプトに変えたいと考えていました。また、何らかの理由でプログレスバーにファイルアップロードの実際の進行状況が表示されません。Adob​​e 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がファイルのアップロードの進行を報告していないと推測しています。したがって、アクションスクリプトは開始と終了だけを見ています。私はちょうど代わりにスピナーを投げるだろうと思う。 – ASPiRE

答えて

0

チェックこのexample:あなたはmaximumminimumプロパティを設定し、あなたにsetProgressを呼び出す必要がありますfileProgress機能

純粋なAS3にフレックスコードをオンにする2つの方法があります。
は、*は、これは私が探していたもので、純粋なAS3プロジェクトとして

+0

アップロード中に進行状況バーに何も表示されないようです。 – ASPiRE

0

をMXMLを使用せずにコードを書き換える*フレックス-config.xmlの
<keep-generated-actionscript>true</keep-generated-actionscript>を設定しましたプログレスバーの更新に関する。

private function progressHandler(event:ProgressEvent):void 
{ 
    pb.setProgress(event.bytesLoaded, event.bytesTotal); 
} 

解決策へのリンク。

http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cf6.html

関連する問題