パッケージflash.net
public class FileReference
継承FileReference Inheritance EventDispatcher Inheritance Object

FileReference クラスには、ユーザーのコンピュータとサーバーとの間でファイルをアップロードおよびダウンロードするための手段があります。オペレーティングシステムのダイアログボックスを使用して、アップロードするファイルや、ダウンロード先の場所をユーザーが選択できるようにします。各 FileReference オブジェクトはユーザーのディスク上にある 1 つのファイルを参照し、ファイルのサイズ、タイプ、名前、作成日、変更日、クリエータタイプ (Macintosh のみ) に関する情報を保持するプロパティを備えています。

FileReference インスタンスは、次の 2 とおりの方法で作成できます。

アップロード処理の実行中、FileReference オブジェクトのすべてのプロパティの値が、FileReference.browse() または FileReferenceList.browse() メソッドへの呼び出しによって設定されます。ダウンロード処理の実行中、name プロパティの値は select イベントが送出されたときに設定されます。これ以外のすべてのプロパティの値は、complete イベントが送出されたときに設定されます。

browse() メソッドはオペレーティングシステムのダイアログボックスを開いて、ユーザーがアップロード対象のファイルを選択できるようにします。FileReference.browse() メソッドを使用すると、ユーザーは単一のファイルを選択できます。FileReferenceList.browse() メソッドを使用すると、複数のファイルを選択できます。browse() メソッドの呼び出しが正常に終了したら、FileReference.upload() メソッドを呼び出して一度に 1 つのファイルをアップロードします。FileReference.download() メソッドは、ファイルの保存先をユーザーに指定させ、リモート URL からのダウンロードを開始します。

browse() または download() メソッドによって生成されるダイアログボックスのデフォルトのファイルの場所を、FileReference クラスおよび FileReferenceList クラスを使って設定することはできません。ダイアログボックスに表示されるデフォルトの場所は、最後に参照されたフォルダ (その場所を決定できる場合) またはデスクトップです。これらのクラスを使って、転送ファイルを読み込んだり、転送ファイルに書き込んだりすることはできません。これらのクラスを使用しても、アップロードまたはダウンロードを開始した SWF ファイルが、アップロードファイルやダウンロードファイル、またはユーザーのディスクのファイルの場所にアクセスすることはできません。

また FileReference と FileReferenceList クラスは認証方法も提供しません。認証が必要なサーバーでは、Flash® Player ブラウザプラグインを使ってファイルをダウンロードできますが、すべての Player でのアップロード、およびスタンドアローンまたは外部 Player でのダウンロードは失敗します。FileReference イベントをリッスンして、処理が正常に終了したかどうかを確認して、エラー処理を行います。

アップロード処理およびダウンロード処理の場合、SWF ファイルは、それ自体のドメイン内に含まれるファイルだけにアクセスできます。こうしたドメインには、クロスドメインポリシーファイルで指定されたドメインが含まれます。アップロードまたはダウンロードを開始している SWF が、ファイルサーバーと同じドメインに属していない場合、ファイルサーバーにポリシーファイルを配置します。

FileReference.browse()FileReferenceList.browse()、または FileReference.download() メソッドへの呼び出しの実行中、Mac OS X 10.1 以前のスタンドアローンの外部 Player では SWF ファイルの再生が一時停止します。

パラメータが指定されていない場合は、次のサンプルの HTTP POST 要求が Flash Player からサーバーサイドスクリプトに送信されます。

POST /handler.cfm HTTP/1.1
Accept:text/*
Content-Type:multipart/form-data;
boundary=----------Ij5ae0ae0KM7GI3KM7ei4cH2ei4gL6
User-Agent:Shockwave Flash
Host:www.example.com
Content-Length: 421 
Connection:Keep-Alive
Cache-Control:no-cache
  
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="Filename"
  
MyFile.jpg
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="photo"; filename="MyFile.jpg"
Content-Type:application/octet-stream
  
FileDataHere
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="Upload"
  
Submit Query
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
  

ユーザーが "api_sig""api_key"、および "auth_token" パラメータを指定した場合は、Flash Player は次の HTTP POST 要求を送信します。

POST /handler.cfm HTTP/1.1
Accept:text/*
Content-Type:multipart/form-data;
boundary=----------Ij5ae0ae0KM7GI3KM7ei4cH2ei4gL6
User-Agent:Shockwave Flash
Host:www.example.com
Content-Length: 421 
Connection:Keep-Alive
Cache-Control:no-cache
  
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="Filename"
  
MyFile.jpg
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="api_sig"
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="api_key"
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="auth_token"
  
XXXXXXXXXXXXXXXXXXXXXX
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="photo"; filename="MyFile.jpg"
Content-Type:application/octet-stream
  
FileDataHere
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
Content-Disposition:form-data; name="Upload"
  
Submit Query
------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
  

例の表示

関連項目

FileReferenceList
ファイルのアップロードおよびダウンロードに関する操作


パブリックプロパティ
 プロパティ定義
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  creationDate : Date
[read-only] ローカルディスク上に存在するファイルの作成日です。
FileReference
  creator : String
[read-only] ファイルの Macintosh クリエータタイプです。
FileReference
  modificationDate : Date
[read-only] ローカルディスク上に存在するファイルの最終変更日です。
FileReference
  name : String
[read-only] ローカルディスク上に存在するファイルの名前です。
FileReference
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  size : uint
[read-only] ローカルディスク上に存在するファイルのサイズ (バイト単位) です。
FileReference
  type : String
[read-only] ファイル形式です。
FileReference
パブリックメソッド
 メソッド定義
  FileReference()
新しい FileReference オブジェクトを作成します。
FileReference
 InheritedaddEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  browse(typeFilter:Array = null):Boolean
アップロードするファイルを選択できるファイル参照ダイアログボックスを表示します。
FileReference
  cancel():void
この FileReference オブジェクトで進行中のアップロード処理またはダウンロード処理を取り消します。
FileReference
 InheriteddispatchEvent(event:Event):Boolean
イベントをイベントフローに送出します。
EventDispatcher
  download(request:URLRequest, defaultFileName:String = null):void
リモートサーバーからファイルをダウンロードするためのダイアログボックスを開きます。
FileReference
 InheritedhasEventListener(type:String):Boolean
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedremoveEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
  upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
ユーザーが選択したファイルをリモートサーバーにアップロードする処理を開始します。
FileReference
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
 InheritedwillTrigger(type:String):Boolean
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント一覧定義
  cancel ファイルのアップロードまたはダウンロードが、ユーザーによってキャンセルされたときに送出されます。FileReference
  complete ダウンロードが完了、またはアップロードで HTTP ステータスコード 200 が生成された場合に送出されます。FileReference
  httpStatus アップロードに失敗し、HTTP ステータスコードを使用して失敗を記述することができない場合に送出されます。FileReference
  ioError アップロードまたはダウンロードが失敗したときに送出されます。FileReference
  open アップロード処理またはダウンロード処理が開始するときに送出されます。FileReference
  progress ファイルのアップロード処理中またはダウンロード処理中に定期的に送出されます。FileReference
  securityError FileReference.upload() または FileReference.download() メソッドの呼び出しによって、サーバーにファイルをアップロードするか、呼び出し元のセキュリティサンドボックスの外部にあるサーバーからファイルを取得しようとすると、送出されます。FileReference
  select ユーザーがアップロードするファイルまたはダウンロードするファイルをファイル参照ダイアログボックスから選択したときに、送出されます。FileReference
プロパティの詳細
creationDateプロパティ
creationDate:Date  [read-only]

ローカルディスク上に存在するファイルの作成日です。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。

実装
    public function get creationDate():Date

Throws
IllegalOperationError FileReference.browse()FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、creationDate プロパティの値は null です。
 
IOError — ファイル情報にアクセスできない場合、I/O エラーを示すメッセージとともにエラーがスローされます。

関連項目

creatorプロパティ 
creator:String  [read-only]

ファイルの Macintosh クリエータタイプです。Windows の場合、このプロパティは null になります。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。

実装
    public function get creator():String

Throws
IllegalOperationError — Macintosh では、FileReference.browse()FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、creator プロパティの値は null です。

関連項目

modificationDateプロパティ 
modificationDate:Date  [read-only]

ローカルディスク上に存在するファイルの最終変更日です。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。

実装
    public function get modificationDate():Date

Throws
IllegalOperationError FileReference.browse()FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、modificationDate プロパティの値は null です。
 
IOError — ファイル情報にアクセスできない場合、I/O エラーを示すメッセージとともにエラーがスローされます。

関連項目

nameプロパティ 
name:String  [read-only]

ローカルディスク上に存在するファイルの名前です。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。

FileReference オブジェクトのすべてのプロパティの値は、browse() メソッドを呼び出すことにより設定されます。download() メソッドを呼び出した場合、他の FileReference のプロパティと異なり、name プロパティの値は select イベントが送出されたときに設定されます。

実装
    public function get name():String

Throws
IllegalOperationError FileReference.browse()FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、name プロパティの値は null です。

関連項目

sizeプロパティ 
size:uint  [read-only]

ローカルディスク上に存在するファイルのサイズ (バイト単位) です。size が 0 の場合、例外がスローされます。

実装
    public function get size():uint

Throws
IllegalOperationError FileReference.browse()FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、size プロパティの値は 0 です。
 
IOError — ファイルを開くこと、読み取ることができない場合、またはファイルへのアクセスで同様のエラーが発生した場合、例外がスローされ、ファイルの I/O エラーを知らせるメッセージが送信されます。この場合、size プロパティの値は 0 です。

関連項目

typeプロパティ 
type:String  [read-only]

ファイル形式です。Windows の場合、このプロパティはファイル拡張子になります。Macintosh の場合、このプロパティは 4 文字のファイルタイプになります。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。

実装
    public function get type():String

Throws
IllegalOperationError FileReference.browse()FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、type プロパティの値は null です。
コンストラクタの詳細
FileReference()コンストラクタ
public 関数 FileReference()

新しい FileReference オブジェクトを作成します。設定されると、FileReference オブジェクトはユーザーのローカルディスク上のファイルを表します。

関連項目

メソッドの詳細
browse()メソッド
public function browse(typeFilter:Array = null):Boolean

アップロードするファイルを選択できるファイル参照ダイアログボックスを表示します。このダイアログボックスは、オペレーティングシステムのネイティブのダイアログボックスです。ユーザーは、たとえば Windows の UNC パスを使用して、ローカルコンピュータまたは他のコンピュータからファイルを選択できます。

このメソッドを呼び出して、ユーザーが正常にファイルを選択すると、この FileReference オブジェクトのプロパティにそのファイルのプロパティが設定されます。これ以降 FileReference.browse() メソッドが呼び出されるたびに、FileReference オブジェクトのプロパティは、ダイアログボックスでユーザーが選択したファイルにリセットされます。一度に 1 つの browse() セッションまたは download() セッションだけを実行できます。これは、一度に 1 つのダイアログボックスしか呼び出せないからです。

どのファイルをダイアログボックスに表示するかを決定するために、typeFilter パラメータを使用できます。

パラメータ
typeFilter:Array (default = null) — ダイアログボックスに表示するファイルをフィルタにかける場合に使用する FileFilter インスタンスの配列です。このパラメータを省略すると、すべてのファイルが表示されます。詳細については、FileFilter クラスを参照してください。

戻り値
Boolean — パラメータが有効で、ファイル参照ダイアログボックスが表示された場合に、true を返します。browse メソッドは、ダイアログボックスが開かなかった場合、既に他のブラウザセッションが進行中である場合、または typelist パラメータが使用されたが、配列内のエレメントに説明用文字列または拡張子ストリングが指定されていない場合は、false を返します。

イベント
select:Event — ユーザーが [参照] ファイル選択からアイテムを正しく選択すると、送出されます。
 
cancel:Event — ユーザーがファイルアップロードの [参照] ウィンドウをキャンセルすると、送出されます。

スロー
IllegalOperationError — 次の状況でスローされます。1) 他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) ユーザーの "mms.cfg" ファイルの設定により、この操作が禁止されている場合。
 
ArgumentError typeFilter 配列に、不正な形式の FileFilter オブジェクトが含まれていると、例外がスローされます。FileFilter オブジェクトの正しい形式の詳細については、FileFilter クラスを参照してください。

関連項目

cancel()メソッド 
public function cancel():void

この FileReference オブジェクトで進行中のアップロード処理またはダウンロード処理を取り消します。このメソッドを呼び出しても cancel イベントは送出されません。このイベントは、ユーザーがファイルアップロードまたはダウンロードのダイアログボックスを閉じて処理をキャンセルした場合にのみ送出されます。

download()メソッド 
public function download(request:URLRequest, defaultFileName:String = null):void

リモートサーバーからファイルをダウンロードするためのダイアログボックスを開きます。Flash Player ではアップロードまたはダウンロードできるファイルのサイズに制限はありませんが、このプレーヤーが正式にサポートしているアップロードまたはダウンロードのサイズは最大 100 MB です。

download() メソッドは、まず、オペレーティングシステムのダイアログボックスを表示して、ユーザーにファイル名を入力してもらった後、ファイル名の保存先となるローカルコンピュータ上の場所を選択してもらいます。ユーザーが保存場所を選択し、[保存] などをクリックして、ファイルをローカルに保存することを確認すると、リモートサーバーからのダウンロードが開始します。リスナーは、ダウンロードが進行中なのか、成功したのか、失敗したのかを示すイベントを受け取ります。download() を呼び出した後のダイアログボックスやダウンロード処理の状態を確認するには、ActionScript で cancelopenprogress、および complete などのイベントをリッスンする必要があります。

FileReference.upload() 関数と FileReference.download() 関数はノンブロッキング処理を行います。これらの関数は呼び出された後、ファイル転送が完了する前に返されます。さらに、FileReference オブジェクトがスコープ外に移動した場合、そのオブジェクトに対して完了していないアップロードまたはダウンロードは、スコープから離れた時点でキャンセルされます。アップロードまたはダウンロードの続行を期待できる限りは、FileReference オブジェクトがスコープ内にあることを確認してください。

ファイルが正常にダウンロードされると、FileReference オブジェクトのプロパティにローカルファイルのプロパティが設定されます。ダウンロードが成功した場合、complete イベントが送出されます。

一度に 1 つの browse() セッションまたは download() セッションだけを実行できます。これは、一度に 1 つのダイアログボックスしか呼び出せないからです。

このメソッドは、どのファイルタイプのダウンロードにも対応しており、HTTP と HTTPS のいずれも使用できます。

メモ:サーバーでユーザー認証が必要な場合、ブラウザ内で実行される、つまり、ブラウザプラグインまたは ActiveX コントロールを使用する SWF ファイルでのみ、認証用のユーザー名とパスワードをユーザーが入力できるダイアログボックスを表示できます。ただし、それはダウンロードの場合のみです。プラグインまたは ActiveX コントロールを使用するアップロードの場合、または、スタンドアローンまたは外部 Player を使用するアップロードとダウンロードの場合、ファイル転送は失敗します。

このメソッドを使用するときは、Flash Player セキュリティモデルを考慮してください。

詳細については、次のトピックを参照してください。

パラメータ
request:URLRequest — URLRequest オブジェクトです。URLRequest オブジェクトの url プロパティには、ローカルコンピュータにダウンロードするファイルの URL を設定する必要があります。このパラメータが null の場合、例外がスローされます。POST パラメータまたは GET パラメータをサーバーに送信するには、URLRequest.data の値に任意のパラメータを設定し、URLRequest.methodURLRequestMethod.POST または URLRequestMethod.GET を設定します。

一部のブラウザでは、URL ストリングの長さに制限があるものがあります。長さが 256 文字を超える場合、一部のブラウザまたはサーバーでは失敗する場合があります。

 
defaultFileName:String (default = null) — ダウンロードするファイルとしてダイアログボックスに表示するデフォルトファイル名です。このストリングに、次の文字を含めないでください。 / \ : * ? " < > | %

このパラメータを省略すると、リモート URL のファイル名が構文解析されて、デフォルトとして使用されます。


イベント
open:Event — ダウンロード処理が開始したときに送出されます。
 
progress:ProgressEvent — ファイルのダウンロード処理中に定期的に送出されます。
 
complete:Event — ファイルのダウンロード処理が正常に完了したときに送出されます。
 
cancel:Event — ユーザーがダイアログボックスを閉じると、送出されます。
 
select:Event — ダウンロードするファイルをユーザーがダイアログボックスから選択すると、送出されます。
 
securityError:SecurityErrorEvent — セキュリティエラーが原因でダウンロードが失敗したときに送出されます。
 
ioError:IOErrorEvent — 次のいずれかの理由で送出されます。
  • ファイルの読み込み中または転送中に入出力エラーが発生した場合。
  • スタンドアローンまたは外部 Player 内で、認証が必要なサーバーから SWF ファイルがファイルをダウンロードしようとした場合。ダウンロードする際、スタンドアローンまたは外部 Player には、ユーザーがパスワードを入力する手段がありません。認証が必要なサーバーに対して、これらの Player 内の SWF がファイルをダウンロードしようとすると、ダウンロードは失敗します。ファイルのダウンロードは、ActiveX コントロール Player やブラウザプラグイン Player でのみ成功する可能性があります。

スロー
IllegalOperationError — 次の状況でスローされます。1) 他のブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) request に渡された値に、無効なパスまたはプロトコルが含まれている場合。3) ダウンロードするファイルの名前に禁止文字が含まれている場合。4) ユーザーの "mms.cfg" ファイルの設定により、この操作が禁止されている場合。
 
SecurityError — 信頼されていないローカル SWF はインターネットへの接続を許可されません。この問題を回避するには、この SWF ファイルを、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類します。この例外がスローされると、ローカルファイルのセキュリティ制限が原因でアクセスできないファイル名および URL を示すメッセージが送信されます。
 
ArgumentError url.data が ByteArray 型の場合、例外がスローされます。FileReference.upload() メソッドおよび FileReference.download() メソッドと一緒に使用する場合、url.data は URLVariables 型または String 型のみになります。
 
MemoryError — このエラーは、次の理由で発生する可能性があります。1) Flash Player では URLRequest.data パラメータを UTF8 から MBCS に変換できません。このエラーは、FileReference.download() メソッドに渡された URLRequest オブジェクトが GET 操作を行うように設定された場合と、System.useCodePagetrue に設定された場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、FileReference.download() メソッドに渡された URLRequest オブジェクトが POST 操作を行うように設定された場合に発生することがあります。

関連項目



次の例で、download イベントオブジェクトの使用方法を示します。 この例を実行するには、downloadURL.url プロパティを変更して、 架空の http://www.[yourDomain].com/SomeFile.pdf ではなく実際のドメインおよびファイルを参照するようにします。 また、[ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。 または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.URLRequest;
    import flash.net.FileFilter;

    public class FileReference_download extends Sprite {
        private var downloadURL:URLRequest;
        private var fileName:String = "SomeFile.pdf";
        private var file:FileReference;

        public function FileReference_download() {
            downloadURL = new URLRequest();
            downloadURL.url = "http://www.[yourDomain].com/SomeFile.pdf";
            file = new FileReference();
            configureListeners(file);
            file.download(downloadURL, fileName);
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.CANCEL, cancelHandler);
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(Event.SELECT, selectHandler);
        }

        private function cancelHandler(event:Event):void {
            trace("cancelHandler: " + event);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function selectHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("selectHandler: name=" + file.name + " URL=" + downloadURL.url);
        }
    }
}

upload()メソッド 
public function upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void

ユーザーが選択したファイルをリモートサーバーにアップロードする処理を開始します。Flash Player ではアップロードまたはダウンロードできるファイルのサイズに制限はありませんが、このプレーヤーが正式にサポートしているアップロードまたはダウンロードのサイズは最大 100 MB です。このメソッドを呼び出す前に、FileReference.browse() メソッドまたは FileReferenceList.browse() メソッドを呼び出す必要があります。

リスナーは、アップロードが進行中なのか、成功したのか、失敗したのかを示すイベントを受け取ります。FileReferenceList オブジェクトを使用すると、ユーザーが複数のファイルを選択してアップロードすることが可能になりますが、ファイルは 1 つずつアップロードする必要があります。この操作を実行するには、FileReference オブジェクトの FileReferenceList.fileList 配列で繰り返し処理を実行します。

FileReference.upload() 関数と FileReference.download() 関数はノンブロッキング処理を行います。これらの関数は呼び出された後、ファイル転送が完了する前に返されます。さらに、FileReference オブジェクトがスコープ外に移動した場合、そのオブジェクトに対して完了していないアップロードまたはダウンロードは、スコープから離れた時点でキャンセルされます。アップロードまたはダウンロードの続行を期待できる限りは、FileReference オブジェクトがスコープ内にあることを確認してください。

ファイルは、url パラメータに渡された URL にアップロードされます。URL は、アップロードを許可するよう設定されたサーバースクリプトである必要があります。Flash Player は、HTTP POST メソッドを使用してファイルをアップロードします。アップロードを処理するサーバースクリプトは、次のエレメントを持つ POST リクエストを想定しています。

POST 要求のサンプルについては、uploadDataFieldName パラメータの説明を参照してください。upload() メソッドを使用して、POST パラメータまたは GET パラメータをサーバーに送信できます。request パラメータの説明を参照してください。

testUpload パラメータが true で、アップロード対象のファイルが約 10 KB を超える場合、Windows 用の Flash Player は、転送が成功するかどうか検証するために、実際のファイルをアップロードする前にテストアップロードとして中身がゼロの POST 処理を送信します。その後 Flash Player は、実際のファイル内容を含む 2 番目の POST 処理を送信します。10 KB 未満のファイルの場合、Flash Player は、アップロード対象の実際のファイル内容を含む POST のアップロードのみを実行します。Macintosh 用の Flash Player は、テストアップロードの POST 処理を実行しません。

メモ:サーバーでユーザー認証が必要な場合、ブラウザ内で実行される、つまり、ブラウザプラグインまたは ActiveX コントロールを使用する SWF ファイルでのみ、認証用のユーザー名とパスワードをユーザーが入力できるダイアログボックスを表示できます。ただし、それはダウンロードの場合のみです。プラグインまたは ActiveX コントロールを使用するアップロードの場合、または、スタンドアローンまたは外部 Player を使用するアップロードとダウンロードの場合、ファイル転送は失敗します。

このメソッドを使用する場合は、Flash Player セキュリティモデルに関する次の制限に注意してください。

詳細については、次のトピックを参照してください。

パラメータ
request:URLRequest — URLRequest オブジェクトです。URLRequest オブジェクトの url プロパティには、HTTP の POST 呼び出しを使用してアップロードを処理するように設定したサーバースクリプトの URL を設定する必要があります。一部のブラウザでは、URL ストリングの長さに制限があるものがあります。長さが 256 文字を超える場合、一部のブラウザまたはサーバーでは失敗する場合があります。このパラメータが null の場合、例外がスローされます。

この URL では、HTTP または HTTPS (セキュアアップロード) を使用できます。HTTPS を使用するには、url パラメータで HTTPS url を使用します。url パラメータにポート番号を指定しない場合、Flash Player は、HTTP の場合はポート 80、HTTPS の場合はポート 443 をデフォルトで使用します。

POSTパラメータまたは GETパラメータをサーバーに送信するには、URLRequest オブジェクトの data プロパティに任意のパラメータを設定し、method プロパティを URLRequestMethod.POST または URLRequestMethod.GET に設定します。

 
uploadDataFieldName:String (default = "Filedata") — アップロード POST 操作のファイルデータに先行するフィールド名です。uploadDataFieldName 値は、null 以外、空白以外のストリングである必要があります。デフォルトでは、uploadDataFieldName の値は、次のサンプル POST 要求に示すように、"Filedata" です。
Content-Type:multipart/form-data; boundary=AaB03x
--AaB03x
Content-Disposition:form-data; name="Filedata"; filename="example.jpg"
Content-Type:application/octet-stream
... contents of example.jpg ... 
--AaB03x--
 
 
testUpload:Boolean (default = false) — テストファイルアップロードを要求するための設定です。testUploadtrue で、ファイルの大きさが 10 KB を超える場合、Flash Player は、コンテンツ長 0 でテストファイルアップロードの POSTを試行します。このテストアップロードでは、実際のファイルのアップロードが成功するかどうか、サーバー認証が必要な場合はそれが成功するかどうかがチェックされます。テストアップロードは、Windows プレーヤーでのみ使用できます。

イベント
open:Event — アップロード処理が開始したときに送出されます。
 
progress:ProgressEvent — ファイルのアップロード処理中に定期的に送出されます。
 
complete:Event — ファイルのアップロード処理が正常に完了したときに送出されます。
 
securityError:SecurityErrorEvent — セキュリティ侵害が原因でアップロードが失敗した場合に送出されます。
 
httpStatus:HTTPStatusEvent — HTTP エラーが原因でアップロードが失敗した場合に送出されます。
 
ioError:IOErrorEvent — 次のいずれかの状況に合致する場合に呼び出されます。
  • Flash Player によるファイルの読み込み中、書き込み中、または転送中に入出力エラーが発生したために、アップロードが失敗した場合。
  • ユーザー名とパスワードなど、認証が必要なサーバーに SWF がファイルをアップロードしようとしたことが原因でアップロードが失敗した場合。アップロードする際、Flash Player には、ユーザーがパスワードを入力する手段がありません。
  • url パラメータに無効なプロトコルが含まれることが原因でアップロードが失敗した場合。FileReference.upload() は HTTP または HTTPS を使用する必要があります。

スロー
SecurityError — 信頼されていないローカル SWF はインターネットへの接続を許可されません。この問題を回避するには、この SWF ファイルを、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類します。この例外がスローされると、アクセスできないローカルファイルの名前および URL を示すメッセージが送信されます。
 
IllegalOperationError — 次の状況でスローされます。1) 他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) URL パラメータが有効なパスまたはプロトコルでない場合。ファイルのアップロードでは HTTP を使用し、ファイルのダウンロードでは FTP または HTTP を使用する必要があります。3) uploadDataFieldName パラメータが null に設定されている場合。4) ユーザーの "mms.cfg" ファイルの設定により、この操作が禁止されている場合。
 
ArgumentError — 次の状況でスローされます。1) uploadDataFieldName パラメータが空のストリングの場合。2) url.data が ByteArray 型の場合。FileReference.upload() メソッドおよび FileReference.download() メソッドと一緒に使用する場合、url.data は URLVariables 型または String 型のみになります。
 
MemoryError — このエラーは、次の理由で発生する可能性があります。1) Flash Player では URLRequest.data パラメータを UTF8 から MBCS に変換できません。このエラーは、FileReference.upload() に渡された URLRequest オブジェクトが GET 操作を行うように設定された場合、および System.useCodePagetrue に設定された場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、FileReference.upload() に渡された URLRequest オブジェクトが POST 操作を行うように設定された場合に発生することがあります。

関連項目

イベントの詳細
cancelevent 
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.CANCEL

ファイルのアップロードまたはダウンロードが、ユーザーによってキャンセルされたときに送出されます。

cancelイベントオブジェクトの type プロパティの値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target操作をキャンセルするオブジェクトへの参照です。


次の例で、cancel イベントオブジェクトの使用方法を示します。 この例を実行するには、downloadURL.url プロパティを変更して、 架空の http://www.[yourDomain].com/SomeFile.pdf ではなく実際のドメインおよびファイルを参照するようにします。 また、[ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。 または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.URLRequest;

    public class FileReference_event_cancel extends Sprite {
        private var downloadURL:URLRequest;
        private var fileName:String = "SomeFile.pdf";
        private var file:FileReference;

        public function FileReference_event_cancel() {
            downloadURL = new URLRequest();
            downloadURL.url = "http://www.[yourDomain].com/SomeFile.pdf";
            file = new FileReference();
            file.addEventListener(Event.CANCEL, cancelHandler);
            file.download(downloadURL, fileName);
        }
        private function cancelHandler(event:Event):void {
            trace("cancelHandler: " + event);
        }
    }
}

completeevent  
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.COMPLETE

ダウンロードが完了、またはアップロードで HTTP ステータスコード 200 が生成された場合に送出されます。ファイルのダウンロードの場合、Flash Player でディスクへのファイル全体のダウンロードが完了すると、このイベントが送出されます。ファイルのアップロードの場合、転送を受信したサーバーから HTTP ステータスコード 200 を Flash Player が受け取った後、このイベントが送出されます。

complete イベントオブジェクトの type プロパティの値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetロードが完了したネットワークオブジェクトです。target は、必ずしもイベントリスナーを登録した表示リスト内のオブジェクトとは限りません。現在イベントを処理している表示リスト内のオブジェクトにアクセスするには、currentTarget プロパティを使用します。


次の例で、complete イベントオブジェクトの使用方法を示します。 この例を実行するには、downloadURL.url プロパティを変更して、 架空の http://www.[yourDomain].com/SomeFile.pdf ではなく実際のドメインおよびファイルを参照するようにします。 また、[ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。 または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.URLRequest;

    public class FileReference_event_complete extends Sprite {
        private var downloadURL:URLRequest;
        private var fileName:String = "SomeFile.pdf";
        private var file:FileReference;

        public function FileReference_event_complete() {
            downloadURL = new URLRequest();
            downloadURL.url = "http://www.[yourDomain].com/SomeFile.pdf";
            file = new FileReference();
            configureListeners(file);
            file.download(downloadURL, fileName);
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.CANCEL, cancelHandler);
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(Event.SELECT, selectHandler);
        }

        private function cancelHandler(event:Event):void {
            trace("cancelHandler: " + event);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function selectHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("selectHandler: name=" + file.name + " URL=" + downloadURL.url);
        }
    }
}

関連項目

httpStatusevent  
イベントオブジェクトの型: flash.events.HTTPStatusEvent
HTTPStatusEvent.type property = flash.events.HTTPStatusEvent.HTTP_STATUS

アップロードに失敗し、HTTP ステータスコードを使用して失敗を記述することができない場合に送出されます。httpStatus イベントが送出された後、ioError イベントが送出されます。

httpStatus イベントは、アップロードが失敗した場合にのみ送出されます。ファイルをダウンロードする際、Flash Player はブラウザを頼りにするので、このイベントはダウンロードエラーでは利用されません。HTTP エラーのためにダウンロードが失敗した場合は、I/O エラーとして通知されます。

httpStatus イベントオブジェクトの type プロパティの値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
statusサーバーから返された HTTP ステータスコードです。
targetHTTP ステータスコードを受け取るネットワークオブジェクトです。

関連項目

ioErrorevent  
イベントオブジェクトの型: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

アップロードまたはダウンロードが失敗したときに送出されます。次のいずれかの理由により、ファイル転送に失敗することがあります。

重要 :ブラウザ内で実行される、つまり、ブラウザプラグインまたは ActiveX コントロールを使用する Flash アプリケーションでのみ、認証用のユーザー名とパスワードをユーザーが入力できるダイアログボックスを表示できます。しかも、それはダウンロードの場合のみです。プラグインまたは ActiveX コントロールを使用するアップロードの場合、または、スタンドアローンまたは外部 Player を使用するアップロードまたはダウンロードの場合、ファイル転送は失敗します。

ioError イベントオブジェクトの type プロパティの値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target入出力エラーが発生したネットワークオブジェクトです。
textエラーメッセージとして表示されるテキストです。

関連項目

openevent  
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.OPEN

アップロード処理またはダウンロード処理が開始するときに送出されます。

open イベントオブジェクトの type プロパティの値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target接続をオープンしたネットワークオブジェクトです。


次の例で、download イベントオブジェクトの使用方法を示します。 この例を実行するには、downloadURL.url プロパティを変更して、 架空の http://www.[yourDomain].com/SomeFile.pdf ではなく実際のドメインおよびファイルを参照するようにします。 また、[ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。 または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.URLRequest;
    import flash.net.FileFilter;

    public class FileReference_download extends Sprite {
        private var downloadURL:URLRequest;
        private var fileName:String = "SomeFile.pdf";
        private var file:FileReference;

        public function FileReference_download() {
            downloadURL = new URLRequest();
            downloadURL.url = "http://www.[yourDomain].com/SomeFile.pdf";
            file = new FileReference();
            configureListeners(file);
            file.download(downloadURL, fileName);
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.CANCEL, cancelHandler);
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(Event.SELECT, selectHandler);
        }

        private function cancelHandler(event:Event):void {
            trace("cancelHandler: " + event);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function selectHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("selectHandler: name=" + file.name + " URL=" + downloadURL.url);
        }
    }
}

関連項目

progressevent  
イベントオブジェクトの型: flash.events.ProgressEvent
ProgressEvent.type property = flash.events.ProgressEvent.PROGRESS

ファイルのアップロード処理中またはダウンロード処理中に定期的に送出されます。progress イベントは、Flash Player がバイトをサーバーに転送しているときに送出され、最終的に転送が成功しなくても、転送の実行中は定期的に送出されます。ファイルの転送が実際に成功して完了したかどうか、およびそのタイミングを確認するには、complete イベントを受け取ります。

場合によっては、progress イベントは受信されません。たとえば、転送対象ファイルが非常に小さい場合や、アップロードやダウンロードが非常に短時間に終わる場合、progress イベントは送出されない場合があります。

ファイルのアップロードの進捗状況は、OS X 10.3 より前の Macintosh プラットフォームでは確認できません。progress イベントは、アップロード処理中に呼び出されますが、progress イベントの bytesLoaded プロパティの値は、進捗状況を確認できないことを示す -1 です。

progress イベントオブジェクトの type プロパティの値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
bytesLoadedリスナーがイベントを処理しているときにロードされたアイテム数またはバイト数です。
bytesTotalロードプロセスが成功した場合に最終的にロードされるアイテムまたはバイトの総数です。
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target進行状況をレポートするネットワークオブジェクトです。


次の例で、progress イベントの使用方法を示します。 この例を実行するには、downloadURL.url プロパティを変更して、 架空の http://www.[yourDomain].com/SomeFile.pdf ではなく実際のドメインおよびファイルを参照するようにします。 また、[ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。 または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。

package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.URLRequest;

    public class FileReference_event_progress extends Sprite {
        private var downloadURL:URLRequest;
        private var fileName:String = "SomeFile.pdf";
        private var file:FileReference;

        public function FileReference_event_progress() {
            downloadURL = new URLRequest();
            downloadURL.url = "http://www.[yourDomain].com/SomeFile.pdf";
            file = new FileReference();
            file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            file.addEventListener(Event.COMPLETE, completeHandler);
            file.download(downloadURL, fileName);
        }

        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }
        
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }
        
        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }
    }
}

関連項目

securityErrorevent  
イベントオブジェクトの型: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

FileReference.upload() または FileReference.download() メソッドの呼び出しによって、サーバーにファイルをアップロードするか、呼び出し元のセキュリティサンドボックスの外部にあるサーバーからファイルを取得しようとすると、送出されます。発生した特有のエラーを示す text プロパティの値は、通常 "securitySandboxError" です。呼び出し側の SWF ファイルが自分のドメインの外にある SWF ファイルにアクセスしようとして、アクセス権限がないと発生します。クロスドメインポリシーファイルを使用することで、このエラーに対処できます。

SecurityErrorEvent.SECURITY_ERROR 定数は、securityError イベントオブジェクトの type プロパティ値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetセキュリティエラーを報告するネットワークオブジェクトです。
textエラーメッセージとして表示されるテキストです。

関連項目

selectevent  
イベントオブジェクトの型: flash.events.Event
Event.type property = flash.events.Event.SELECT

ユーザーがアップロードするファイルまたはダウンロードするファイルをファイル参照ダイアログボックスから選択したときに、送出されます。(このダイアログボックスは、FileReference.browse() メソッド、FileReferenceList.browse() メソッド、またはFileReference.download() メソッドを呼び出したときに開かれます)。ユーザーがファイルを選択し、[OK] などをクリックして操作を確認すると、FileReference オブジェクトのプロパティに値が設定されます。

select イベントは、どのメソッドによって呼び出されたかに応じて、少し異なる動作を実行します。browse() 呼び出しの後に select イベントが送出された場合、Flash Player は FileReference オブジェクトのすべてのプロパティを読み取ることができます。これは、ユーザーが選択したファイルが、ローカルファイルシステムに存在するためです。download() 呼び出しの後に select イベントが発生した場合、Flash Player は name プロパティのみを読み取ることができます。これは、select イベントが送出された時点では、ファイルがまだローカルファイルシステムにダウンロードされていないためです。ファイルがダウンロードされ、complete が送出された時点で、Flash Player は FileReference オブジェクトのすべてのプロパティを読み取ることができます。

select イベントオブジェクトの type プロパティの値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetアイテムが選択された FileReference オブジェクトです。


次の例で、select イベントオブジェクトの使用方法を示します。 この例を実行するには、uploadURL.url プロパティを変更して、 架空の http://www.[yourDomain].com/SomeFile.pdf ではなく実際のドメインおよびファイルを参照するようにします。 また、[ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。 または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。 この例をデスクトップから実行するには、 サーバーに crossdomain.xml ファイルが必要です。 ioErrorHandler() 関数がトリガされたら、アップロードを受信するよう設定された有効な URL を使用して、 指定の uploadUrl を更新する必要がある場合があります。
 
package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.URLRequest;

    public class FileReference_event_select extends Sprite {
        private var uploadURL:URLRequest;
        private var file:FileReference;

        public function FileReference_event_select() {
            uploadURL = new URLRequest();
            uploadURL.url = "http://www.[yourDomain].com/yourUploadHandlerScript.cfm";
            file = new FileReference();
            file.addEventListener(Event.SELECT, selectHandler);
            file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            file.addEventListener(Event.COMPLETE, completeHandler);
            file.browse();
        }

        private function selectHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url);
            file.upload(uploadURL);
        }

        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }
    }
}


次の例は、 実行時にロードされるファイルのデータフォーマットとステータス情報を表示します。

メモ: この例を実行するには、uploadURL.url プロパティを変更して、 例の架空の URL ではなく実際の URL を参照するようにします。この URL は、 指定した URL のルート Web ディレクトリ内の yourUploadHandlerScript.cfm という名前のファイルを参照している必要があります。 設定に基づいて、[ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。 または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。


package {
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.FileFilter;
    import flash.net.FileReference;
    import flash.net.URLRequest;

    public class FileReferenceExample extends Sprite {
        private var uploadURL:URLRequest;
        private var file:FileReference;

        public function FileReferenceExample() {
            uploadURL = new URLRequest();
            uploadURL.url = "http://www.[yourDomain].com/yourUploadHandlerScript.cfm";
            file = new FileReference();
            configureListeners(file);
            file.browse(getTypes());
        }

        private function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.CANCEL, cancelHandler);
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            dispatcher.addEventListener(Event.SELECT, selectHandler);
        }

        private function getTypes():Array {
            var allTypes:Array = new Array(getImageTypeFilter(), getTextTypeFilter());
            return allTypes;
        }

        private function getImageTypeFilter():FileFilter {
            return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
        }

        private function getTextTypeFilter():FileFilter {
            return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
        }

        private function cancelHandler(event:Event):void {
            trace("cancelHandler: " + event);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
        }

        private function httpStatusHandler(event:HTTPStatusEvent):void {
            trace("httpStatusHandler: " + event);
        }
        
        private function ioErrorHandler(event:IOErrorEvent):void {
            trace("ioErrorHandler: " + event);
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }

        private function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
        }

        private function selectHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("selectHandler: name=" + file.name + " URL=" + uploadURL.url);
            file.upload(uploadURL);
        }
    }
}