パッケージflash.net
クラスpublic class FileReference
継承FileReference Inheritance EventDispatcher Inheritance Object
サブクラス File

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

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

アップロード処理の実行中、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 イベントをリッスンして、処理が正常に終了したかどうかを確認して、エラー処理を行います。

Flash Player で実行されるコンテンツの場合、またはアプリケーションセキュリティサンドボックス外の、Adobe AIR で実行されるコンテンツの場合、アップロード操作およびダウンロード操作では、それ自身のドメイン内および URL ポリシーファイルが指定するドメイン内のファイルにのみアクセスできます。アップロードまたはダウンロードを開始しているコンテンツが、ファイルサーバーと同じドメインに属していない場合、ファイルサーバーにポリシーファイルを配置します。

Flash Player に追加された新しい機能により、Flash Player 10 にパブリッシュする場合は、FileReference.browse()FileReference.upload()FileReference.download()FileReference.load()、および FileReference.save() の中で、同時に実行できる操作は 1 つのみです。複数の操作を実行すると、Flash Player でランタイムエラー(コード 2174)が発生します。進行中の操作を停止するには、FileReference.cancel() を使用します。この制限は Flash Player 10 にのみ適用されます。以前のバージョンの Flash Player については、同時に複数の操作を実行しても、この制限には影響されません。

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

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

  POST /handler.cfm HTTP/1.1 
  Accept: text/*
  Content-Type: multipart/form-data; 
  boundary=----------Ij5ae0ae0KM7GI3KM7 
  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="Filedata"; filename="MyFile.jpg"
  Content-Type: application/octet-stream
  
  FileDataHere
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Upload"
  
  Submit Query
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
  

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

  POST /handler.cfm HTTP/1.1 
  Accept: text/*
  Content-Type: multipart/form-data; 
  boundary=----------Ij5ae0ae0KM7GI3KM7 
  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="Filedata"; filename="MyFile.jpg"
  Content-Type: application/octet-stream
  
  FileDataHere
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7
  Content-Disposition: form-data; name="Upload"
  
  Submit Query
  ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
  

例を表示

関連項目

flash.net.FileReferenceList
flash.filesystem.File
Working with file upload and download


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  creationDate : Date
[読み取り専用] ローカルディスク上に存在するファイルの作成日です。
FileReference
  creator : String
[読み取り専用] Macintosh クリエータタイプのファイルです。このファイルは、Mac OS X より前のバージョンの Mac OS でのみ使用されます。
FileReference
  data : ByteArray
[読み取り専用] ByteArray オブジェクトは、load() メソッドの呼び出しが成功した後の、ロードされたファイルのデータを表します。
FileReference
  AIR-only extension : String
[読み取り専用] ファイル名拡張子です。
FileReference
  modificationDate : Date
[読み取り専用] ローカルディスク上に存在するファイルの最終変更日です。
FileReference
  name : String
[読み取り専用] ローカルディスク上に存在するファイルの名前です。
FileReference
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  size : Number
[読み取り専用] ローカルディスク上に存在するファイルのサイズ (バイト単位) です。
FileReference
  type : String
[読み取り専用] ファイル形式です。
FileReference
パブリックメソッド
 メソッド定義元
  
新しい FileReference オブジェクトを作成します。
FileReference
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  
browse(typeFilter:Array = null):Boolean
アップロードするファイルを選択できるファイル参照ダイアログボックスを表示します。
FileReference
  
この FileReference オブジェクトで進行中のアップロード処理またはダウンロード処理を取り消します。
FileReference
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
download(request:URLRequest, defaultFileName:String = null):void
リモートサーバーからファイルをダウンロードするためのダイアログボックスを開きます。
FileReference
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
ユーザーが選択したローカルファイルの読み込みを開始します。
FileReference
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  
save(data:*, defaultFileName:String = null):void
ローカルファイルシステムにファイルを保存するためのダイアログボックスを開きます。
FileReference
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
  
upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
ユーザーが選択したファイルをリモートサーバーにアップロードする処理を開始します。
FileReference
  
ファイルをエンコードせずに URL へのアップロードを開始します。
FileReference
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
  ユーザーがアップロードまたはダウンロードするファイルをファイル参照ダイアログボックスからキャンセルしたときに送出されます。FileReference
  ダウンロードが完了、またはアップロードで HTTP ステータスコード 200 が生成された場合に送出されます。FileReference
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
  upload() または uploadUnencoded() メソッドを呼び出して HTTP を介してデータにアクセスを試み、Adobe AIR で要求のステータスコードを検出して返すことができる場合に送出されます。FileReference
  アップロードに失敗し、HTTP ステータスコードを使用して失敗を記述することができない場合に送出されます。FileReference
  アップロードまたはダウンロードが失敗したときに送出されます。FileReference
  アップロード処理またはダウンロード処理が開始するときに送出されます。FileReference
  ファイルのアップロード処理中またはダウンロード処理中に定期的に送出されます。FileReference
  FileReference.upload() または FileReference.download() メソッドの呼び出しによって、サーバーにファイルをアップロードするか、呼び出し元のセキュリティサンドボックスの外部にあるサーバーからファイルを取得しようとしたときに送出されます。FileReference
  ユーザーがアップロードするファイルまたはダウンロードするファイルをファイル参照ダイアログボックスから選択したときに、送出されます。FileReference
  アップロードの正常終了後、サーバーからデータを受信したときに送出されます。FileReference
プロパティの詳細
creationDateプロパティ
creationDate:Date  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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



実装
    public function get creationDate():Date

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

関連項目

creatorプロパティ 
creator:String  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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



実装
    public function get creator():String

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

関連項目

dataプロパティ 
data:ByteArray  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

ByteArray オブジェクトは、load() メソッドの呼び出しが成功した後の、ロードされたファイルのデータを表します。



実装
    public function get data():ByteArray

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

関連項目

AIR-only extensionプロパティ 
extension:String  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0

ファイル名拡張子です。

ファイルの拡張子は、名前内の最後のドット (".") の後の部分です (ドットは含みません)。ファイル名内にドットがない場合、拡張子は null です。

メモ : ファイルのタイプを確認するには、extension プロパティを使用する必要があります。creator プロパティまたは type プロパティは使用しないでください。creator プロパティと type プロパティは非推奨のプロパティと考えてください。これらのプロパティは、Mac OS の古いバージョンに適用されます。



実装
    public function get extension():String

例外
IllegalOperationError — 参照が初期化されていない場合。
modificationDateプロパティ 
modificationDate:Date  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 9, Flash Player 9

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



実装
    public function get modificationDate():Date

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

関連項目

nameプロパティ 
name:String  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ローカルディスク上に存在するファイルの名前です。(FileReference.download() または FileReference.browse() の有効な呼び出しにより)FileReference オブジェクトに値が設定されていない場合にこのプロパティの値を取得しようとすると、Flash Player はエラーをスローします。

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



実装
    public function get name():String

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

関連項目

sizeプロパティ 
size:Number  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

メモ : ActionScript 3.0 の初期のバージョンでは、size プロパティは、4 GB 程度までのサイズのファイルをサポートする uint オブジェクトとして定義されていました。現在では、それよりも大きいファイルをサポートする Number オブジェクトとして実装されています。



実装
    public function get size():Number

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

関連項目

typeプロパティ 
type:String  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ファイル形式です。

Windows または Linux の場合、このプロパティはファイル拡張子になります。Macintosh では、このプロパティは 4 文字のファイル形式です。これは、Mac OS X より前のバージョンの Mac OS でのみ使用されます。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しを行うと、null が返されます。

Windows、Linux、および Mac OS X の場合、ファイル拡張子(name プロパティの、最後のドット(.)の後の部分)でファイル形式を示します。



実装
    public function get type():String

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

関連項目

コンストラクタの詳細
FileReference()コンストラクタ
public function FileReference()

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

関連項目

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

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

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

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

Flash Player 10 および Flash Player 9 Update 5 では、このメソッドの呼び出しは、マウスのクリックやキー入力などのユーザーイベントに応じてイベントハンドラで呼び出した場合にのみ成功します。それ以外の場合は、このメソッドを呼び出すと、Flash Player から例外がスローされます。

Flash Player に追加された新しい機能により、Flash Player 10 にパブリッシュする場合は、FileReference.browse()FileReference.upload()FileReference.download()FileReference.load()、および FileReference.save() の中で、同時に実行できる操作は 1 つのみです。複数の操作を実行すると、Flash Player でランタイムエラー(コード 2174)が発生します。進行中の操作を停止するには、FileReference.cancel() を使用します。この制限は Flash Player 10 にのみ適用されます。以前のバージョンの Flash Player については、同時に複数の操作を実行しても、この制限には影響されません。

パラメータ

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

戻り値
Boolean — パラメータが有効で、ファイル参照ダイアログボックスが表示された場合に、true を返します。

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

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

関連項目

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

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

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

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

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

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

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

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

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

一般的な予約ポートに接続することはできません。ブロックされているポートの一覧については、セキュリティに関する章(『ActionScript 3.0 のプログラミング』)の「ネットワーク API の制限」を参照してください。

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

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

ただし、Adobe AIR では、application セキュリティサンドボックス内のコンテンツ(AIR アプリケーションと共にインストールされたコンテンツ)は、これらのセキュリティ制限による制限を受けません。

セキュリティ情報について詳しくは、以下を参照してください。

Flash Player に追加された新しい機能により、Flash Player 10 にパブリッシュする場合は、FileReference.browse()FileReference.upload()FileReference.download()FileReference.load()、および FileReference.save() の中で、同時に実行できる操作は 1 つのみです。複数の操作を実行すると、Flash Player でランタイムエラー(コード 2174)が発生します。進行中の操作を停止するには、FileReference.cancel() を使用します。この制限は Flash Player 10 にのみ適用されます。以前のバージョンの Flash Player については、同時に複数の操作を実行しても、この制限には影響されません。

パラメータ

request:URLRequest — URLRequest オブジェクトです。URLRequest オブジェクトの url プロパティには、ローカルコンピュータにダウンロードするファイルの URL を設定する必要があります。このパラメータが null の場合、例外がスローされます。URLRequest オブジェクトの requestHeaders プロパティは無視されるため、カスタム HTTP リクエストヘッダはアップロードまたはダウンロードでサポートされません。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 — 次のいずれかの理由で送出されます。
  • ファイルの読み込み中または転送中に入出力エラーが発生した場合。
  • Flash Player のスタンドアローンバージョンまたは外部バージョンで実行される SWF コンテンツが、認証が必要なサーバーからファイルをダウンロードしようとした場合。ダウンロードする際、スタンドアローンまたは外部 Player には、ユーザーがパスワードを入力する手段がありません。認証が必要なサーバーに対して、これらの Player 内の SWF がファイルをダウンロードしようとすると、ダウンロードは失敗します。ファイルのダウンロードは、ActiveX コントロール Player やブラウザプラグイン Player でのみ成功する可能性があります。

例外
IllegalOperationError — 次の状況でスローされます。1) 他のブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) request に渡された値に、無効なパスまたはプロトコルが含まれている場合。3) ダウンロードするファイルの名前に禁止文字が含まれている場合。4) ユーザーの mms.cfg ファイルの設定により、この操作が禁止されている場合。
 
SecurityError — 信頼されていないローカルコンテンツはインターネットへの接続を許可されません。この問題を回避するには、この SWF ファイルを、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類します。この例外がスローされると、ローカルファイルのセキュリティ制限が原因でアクセスできないファイル名および URL を示すメッセージが送信されます。
 
SecurityError — 一般的な予約ポートに接続しようとした場合。ブロックされている全ポートの一覧については、『ActionScript 3.0 のプログラミング』のセキュリティに関する章の「ネットワーク API の制限」を参照してください。
 
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 操作を行うように設定された場合に発生することがあります。
 
Error — マウスイベントやキー入力イベントなどのユーザー操作に応じてメソッドが呼び出されない場合。

関連項目




次の例で、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);
        }
    }
}
load()メソッド 
public function load():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

ユーザーが選択したローカルファイルの読み込みを開始します。Flash Player ではアップロード、ダウンロード、ロードまたは保存できるファイルのサイズに制限はありませんが、正式にサポートしているサイズは最大 100 MB です。Flash Player で実行されているコンテンツでは、FileReference.browse() メソッドまたは FileReferenceList.browse() メソッドを呼び出してから、load() メソッドを呼び出す必要があります。一方、コンテンツをアプリケーションサンドボックスの AIR で実行する場合は、File オブジェクトの load() メソッドを呼び出す前に、browse() メソッドを呼び出す必要はありません。AIR の File クラスが、FileReference クラスを拡張します。

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

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

ファイルのロードが正常に終了すると、コンテンツは FileReference オブジェクトの data プロパティにバイト配列として格納されます。

次のセキュリティに関する考慮事項が適用されます。

ただし、これらの考慮事項はアプリケーションサンドボックス内の AIR コンテンツには適用されません。

Flash Player 10 または AIR 1.5 にパブリッシュする場合は、FileReference.browse()FileReference.upload()FileReference.download()FileReference.load()FileReference.save() の中で同時に実行できる操作は 1 つのみです。複数の操作を実行すると、アプリケーションでランタイムエラー(コード 2174)が発生します。進行中の操作を停止するには、FileReference.cancel() を使用します。この制限は、Flash Player 10 および AIR 1.5 にのみ適用されます。以前のバージョンの Flash Player または AIR については、同時に複数の操作を実行しても、この制限には影響されません。


イベント
open:Event — 読み込み処理が開始したときに送出されます。
 
progress:ProgressEvent — ファイルの読み込み処理中に定期的に送出されます。
 
complete:Event — ファイルの読み込み処理が正常に完了したときに送出されます。
 
ioError:IOErrorEvent — アプリケーションによるファイルの読み込み中または書き込み中に入出力エラーによりロードが失敗した場合に呼び出されます。

例外
IllegalOperationError — 次の状況でスローされます。1)他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) ユーザーの mms.cfg ファイルの設定により、この操作が禁止されている場合。
 
MemoryError — このエラーは、アプリケーションがファイルにメモリを割り当てることができない場合に発生することがあります。ファイルが大きすぎるか、または使用可能なメモリが少なすぎる可能性があります。

関連項目

save()メソッド 
public function save(data:*, defaultFileName:String = null):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

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

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

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

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

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

Flash Player では、このメソッドの呼び出しは、マウスのクリックやキー入力などのユーザーイベントに応じてイベントハンドラで呼び出した場合にのみ成功します。それ以外の場合は、このメソッドを呼び出すと、Flash Player から例外がスローされます。この制限は、アプリケーションサンドボックス内の AIR コンテンツには適用されません。

パラメータ

data:* — 保存されるデータです。データは複数の形式のうちのいずれかになり、以下のように適切に処理されます。
  • 値が null の場合、アプリケーションは ArgumentError 例外をスローします。
  • 値が String の場合は、UTF-8 テキストファイルとして保存されます。
  • 値が XML の場合は、XML 形式でテキストファイルに書き込まれます。形式はすべて保持されます。
  • 値が ByteArray オブジェクトの場合は、データファイルにそのまま書き込まれます。
  • 値が上記のいずれでもない場合、save() メソッドはオブジェクトの toString() メソッドを呼び出し、データをストリングに変換して、データをテキストファイルとして保存します。それが失敗すると、アプリケーションは ArgumentError 例外をスローします。
 
defaultFileName:String (default = null) — 保存するファイルとしてダイアログボックスに表示するデフォルトファイル名です。このストリングに、文字 / \ : * ? を含めないでください。" < > | %

File オブジェクトがこのメソッドを呼び出すと、ファイル名は File オブジェクトが参照するファイルの名前になりますAIR の File クラスが、FileReference クラスを拡張します。


イベント
open:Event — ダウンロード処理が開始したときに送出されます。
 
progress:ProgressEvent — ファイルのダウンロード処理中に定期的に送出されます。
 
complete:Event — ファイルのダウンロード処理が正常に完了したときに送出されます。
 
cancel:Event — ユーザーがダイアログボックスを閉じると、送出されます。
 
select:Event — ダウンロードするファイルをユーザーがダイアログボックスから選択すると、送出されます。
 
ioError:IOErrorEvent — ファイルの読み込み中または転送中に入出力エラーが発生した場合に送出されます。

例外
IllegalOperationError — 次の状況でスローされます。1)他のブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2)ダウンロードするファイルの名前に禁止文字が含まれている場合。3)ユーザーの mms.cfg ファイルの設定により、この操作が禁止されている場合。
 
ArgumentError data が ByteArray 型ではなく、toString() メソッドを持たない場合、例外がスローされます。data が XML 型ではなく、toXMLString() メソッドを持たない場合、例外がスローされます。
 
Error — マウスイベントやキー入力イベントなどのユーザー操作に応じてメソッドが呼び出されない場合。
 
MemoryError — このエラーは、Flash Player がファイルにメモリを割り当てることができない場合に発生することがあります。ファイルが大きすぎるか、または使用可能なメモリが少なすぎる可能性があります。

関連項目

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

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ユーザーが選択したファイルをリモートサーバーにアップロードする処理を開始します。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 リクエストを想定しています。

一般的な予約ポートに接続することはできません。ブロックされているポートの一覧については、セキュリティに関する章(『ActionScript 3.0 のプログラミング』)の「ネットワーク API の制限」を参照してください。

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

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

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

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

ただし、Adobe AIR では、application セキュリティサンドボックス内のコンテンツ(AIR アプリケーションと共にインストールされたコンテンツ)は、これらのセキュリティ制限による制限を受けません。

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

Flash Player に追加された新しい機能により、Flash Player 10 にパブリッシュする場合は、FileReference.browse()FileReference.upload()FileReference.download()FileReference.load()、および FileReference.save() の中で、同時に実行できる操作は 1 つのみです。複数の操作を実行すると、Flash Player でランタイムエラー(コード 2174)が発生します。進行中の操作を停止するには、FileReference.cancel() を使用します。この制限は Flash Player 10 にのみ適用されます。以前のバージョンの Flash Player については、同時に複数の操作を実行しても、この制限には影響されません。

パラメータ

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

この URL では、HTTP または HTTPS (セキュアアップロード) を使用できます。HTTPS を使用するには、url パラメータで HTTPS url を使用します。url パラメータにポート番号を指定しない場合、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 — ファイルのアップロード処理が正常に完了したときに送出されます。
 
uploadCompleteData:DataEvent — ファイルアップロードの正常終了後、サーバーからデータを受信したときに送出されます。
 
securityError:SecurityErrorEvent — セキュリティ侵害が原因でアップロードが失敗した場合に送出されます。
 
httpStatus:HTTPStatusEvent — HTTP エラーが原因でアップロードが失敗した場合に送出されます。
 
httpResponseStatus:HTTPStatusEvent — アップロード操作が正常に完了すると、サーバーは応答 URL と応答ヘッダを返します。
 
ioError:IOErrorEvent — 次のいずれかの状況に合致する場合に呼び出されます。
  • Flash Player または Adobe AIR によるファイルの読み込み中、書き込み中、または転送中に入出力エラーが発生したために、アップロードが失敗した場合。
  • ユーザー名とパスワードなど、認証が必要なサーバーにファイルをアップロードしようとしたことが原因でアップロードが失敗した場合。 アップロード中、ユーザーがパスワードを入力する方法はありません。
  • url パラメータに無効なプロトコルが含まれることが原因でアップロードが失敗した場合。FileReference.upload() は HTTP または HTTPS を使用する必要があります。

例外
SecurityError — 信頼されていないローカル SWF はインターネットへの接続を許可されません。この問題を回避するには、この SWF ファイルを、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類します。この例外がスローされると、アクセスできないローカルファイルの名前および URL を示すメッセージが送信されます。
 
SecurityError — 一般的な予約ポートに接続しようとした場合。ブロックされている全ポートの一覧については、『ActionScript 3.0 のプログラミング』のセキュリティに関する章の「ネットワーク API の制限」を参照してください。
 
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 型のみになります。3) AIR ランタイム(アプリケーションセキュリティサンドボックス内)で、URLRequest のメソッドが GET または POST でない場合(代わりに uploadEncoded() を使用します)。
 
MemoryError — このエラーは、次の理由で発生する可能性があります。1) Flash Player では URLRequest.data パラメータを UTF8 から MBCS に変換できません。このエラーは、FileReference.upload() に渡された URLRequest オブジェクトが GET 操作を行うように設定された場合、および System.useCodePagetrue に設定された場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、FileReference.upload() に渡された URLRequest オブジェクトが POST 操作を行うように設定されている場合に発生することがあります。

関連項目

AIR-only uploadUnencoded()メソッド 
public function uploadUnencoded(request:URLRequest):void

ランタイムバージョン: AIR 1.0

ファイルをエンコードせずに URL へのアップロードを開始します。upload() メソッドは、フォームデータエンベロープ内のファイルをエンコードしますが、uploadUnencoded() メソッドは、HTTP 要求の本体にある状態のままファイルコンテンツを渡します。送信しようとするデータが、受信するサーバーで理解可能な形式で既にエンコードされている場合、uploadUnencoded() メソッドを使用します。通常、uploadeUnencoded() メソッドを、HTTP/WebDAV PUT メソッドと共に使用します。

パラメータ

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

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

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


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

例外
SecurityError — 信頼されていないローカル SWF はインターネットへの接続を許可されません。この問題を回避するには、この SWF ファイルを、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類します。この例外がスローされると、アクセスできないローカルファイルの名前および URL を示すメッセージが送信されます。
 
IllegalOperationError — 次の状況でスローされます。1) 他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) URL パラメータが有効なパスまたはプロトコルでない場合。ファイルのアップロードには HTTP を使用する必要があります。

関連項目

イベントの詳細
cancel イベント
イベントオブジェクトの型: flash.events.Event
プロパティ Event.type = flash.events.Event.CANCEL

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

ユーザーがアップロードまたはダウンロードするファイルをファイル参照ダイアログボックスからキャンセルしたときに送出されます。ユーザーが他の手段 (ブラウザを閉じたり、現在のアプリケーションを停止したりすること) によってアップロードまたはダウンロードをキャンセルした場合、Flash Player はこのイベントを送出しません。

Event.CANCEL 定数は、type プロパティ(cancel イベントオブジェクト)の値を定義します。

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

プロパティ
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);
        }
    }
}
complete イベント  
イベントオブジェクトの型: flash.events.Event
プロパティ Event.type = flash.events.Event.COMPLETE

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

Event.COMPLETE 定数は、type プロパティ(complete イベントオブジェクト)の値を定義します。

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

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



次の例で、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);
        }
    }
}

関連項目

AIR-only httpResponseStatus イベント  
イベントオブジェクトの型: flash.events.HTTPStatusEvent
プロパティ HTTPStatusEvent.type = flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, AIR 1.0

upload() または uploadUnencoded() メソッドを呼び出して HTTP を介してデータにアクセスを試み、Adobe AIR で要求のステータスコードを検出して返すことができる場合に送出されます。

httpStatus イベントと異なり、httpResponseStatus イベントは応答データの前に配信されます。また、httpResponseStatus イベントには responseHeaders プロパティと responseURL プロパティの値が含まれます(これらは httpStatus イベントでは定義されていません)。httpResponseStatus イベントは、発生した場合、complete イベントまたは error イベントの前に、これらのイベントとは別に送信されます。

HTTPStatusEvent.HTTP_RESPONSE_STATUS 定数は、type プロパティ(httpResponseStatus イベントオブジェクト)の値を定義します。

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

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

関連項目

httpStatus イベント  
イベントオブジェクトの型: flash.events.HTTPStatusEvent
プロパティ HTTPStatusEvent.type = flash.events.HTTPStatusEvent.HTTP_STATUS

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

httpStatus イベントは、アップロードが失敗した場合にのみ送出されます。Flash Player で実行されるコンテンツの場合、このイベントはダウンロードの失敗には適用されません。HTTP エラーのためにダウンロードが失敗した場合は、I/O エラーとして通知されます。

HTTPStatusEvent.HTTP_STATUS 定数は、type プロパティ(httpStatus イベントオブジェクト)の値を定義します。

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

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

関連項目

ioError イベント  
イベントオブジェクトの型: flash.events.IOErrorEvent
プロパティ IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

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

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

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

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

関連項目

open イベント  
イベントオブジェクトの型: flash.events.Event
プロパティ Event.type = flash.events.Event.OPEN

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

Event.OPEN 定数は、type プロパティ(open イベントオブジェクト)の値を定義します。

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

プロパティ
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);
        }
    }
}

関連項目

progress イベント  
イベントオブジェクトの型: flash.events.ProgressEvent
プロパティ ProgressEvent.type = flash.events.ProgressEvent.PROGRESS

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

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

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

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

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

プロパティ
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);
        }
    }
}

関連項目

securityError イベント  
イベントオブジェクトの型: flash.events.SecurityErrorEvent
プロパティ SecurityErrorEvent.type = flash.events.SecurityErrorEvent.SECURITY_ERROR

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

Adobe AIR では、これらのセキュリティ制限は、アプリケーションセキュリティサンドボックス内のコンテンツには適用されません。

Adobe AIR では、これらのセキュリティ制限は、アプリケーションセキュリティサンドボックス内のコンテンツには適用されません。

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

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

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

関連項目

select イベント  
イベントオブジェクトの型: flash.events.Event
プロパティ Event.type = flash.events.Event.SELECT

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

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

Flash Player または Adobe AIR ランタイムのアプリケーションセキュリティサンドボックス外で実行されるコンテンツの場合、select イベントは、どのメソッドがそのイベントを呼び出したかにより、わずかに異なった動作をします。select イベントが browse() 呼び出しの後に送出された場合、Flash Player または AIR アプリケーションは、FileReference オブジェクトのすべてのプロパティを読み取ることができます。これは、ユーザーが選択したファイルが、ローカルファイルシステムに存在するためです。select イベントが download() 呼び出しの後に発生した場合、Flash Player または AIR アプリケーションは、name プロパティのみを読み取ることができます。これは、select イベントが送出された時点では、ファイルがまだローカルファイルシステムにダウンロードされていないためです。ファイルがダウンロードされ、complete イベントが送出された時点で、Flash Player または AIR アプリケーションは FileReference オブジェクトの他のすべてのプロパティを読み取ることができます。

Event.SELECT 定数は、type プロパティ(select イベントオブジェクト)の値を定義します。

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

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



次の例で、select イベントオブジェクトの使用方法を示します。この例を実行するには、uploadURL.url プロパティを変更して、架空の http://www ではなく実際のドメインとファイルを参照するようにします。[yourDomain].com/SomeFile.pdf. [ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。この例をデスクトップから実行するには、サーバー側にも crossdomain.xml ファイルを置いておく必要があります。ioErrorHandler() 関数がトリガされた場合には、問題の uploadURL を更新して、アップロードを受信するよう設定された有効な URL に 変更する必要があるかもしれません。
 
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);
        }
    }
}
uploadCompleteData イベント  
イベントオブジェクトの型: flash.events.DataEvent
プロパティ DataEvent.type = flash.events.DataEvent.UPLOAD_COMPLETE_DATA

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9.0.28.0

アップロードの正常終了後、サーバーからデータを受信したときに送出されます。サーバーからデータが返されないと、このイベントは送出されません。

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

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

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
dataファイルアップロードが正常に終了した後、サーバーから返された生データです。
targetアップロードが正常に終了した後、データを受信する FileReference オブジェクトです。
例の使用法
FileReferenceExample.as

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

メモ : この例を実行するには、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);
            dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
        }

        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 uploadCompleteDataHandler(event:DataEvent):void {
            trace("uploadCompleteData: " + 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);
        }
    }
}




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/net/FileReference.html