パッケージ | flash.net |
クラス | public class FileReference |
継承 | FileReference EventDispatcher Object |
サブクラス | File |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
注意: Adobe AIR では、FileReference クラスを拡張する File クラスはより多くの機能を提供し、FileReference クラスよりもセキュリティの制限が小さくなっています。
FileReference インスタンスは、次の方法で作成できます。
- FileReference コンストラクターで
new
演算子を使用する方法:var myFileReference = new FileReference();
-
FileReferenceList.browse()
メソッドを呼び出す方法です。これによって 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--
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
creationDate : Date [読み取り専用]
ローカルディスク上に存在するファイルの作成日です。 | FileReference | ||
creator : String [読み取り専用]
Macintosh クリエータータイプのファイルです。このファイルは、Mac OS X より前のバージョンの Mac OS でのみ使用されます。 | FileReference | ||
data : ByteArray [読み取り専用]
load() メソッドの呼び出しが成功した後に読み込まれるファイルからのデータを表す ByteArray オブジェクト。 | FileReference | ||
extension : String [読み取り専用]
ファイル名拡張子です。 | FileReference | ||
modificationDate : Date [読み取り専用]
ローカルディスク上に存在するファイルの最終変更日です。 | FileReference | ||
name : String [読み取り専用]
ローカルディスク上に存在するファイルの名前です。 | FileReference | ||
permissionStatus : String [静的] [読み取り専用]
ファイルシステムにアクセスする権限をアプリケーションが付与されたかどうかを判定します。 | FileReference | ||
size : Number [読み取り専用]
ローカルディスク上に存在するファイルのサイズ(バイト単位)です。 | FileReference | ||
type : String [読み取り専用]
ファイル形式です。 | FileReference |
メソッド | 定義元 | ||
---|---|---|---|
新しい FileReference オブジェクトを作成します。 | FileReference | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
アップロードするファイルを選択できるファイル参照ダイアログボックスを表示します。 | FileReference | ||
この FileReference オブジェクトで進行中のアップロード処理またはダウンロード処理を取り消します。 | FileReference | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
リモートサーバーからファイルをダウンロードするためのダイアログボックスを開きます。 | FileReference | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
ユーザーが選択したローカルファイルの読み込みを開始します。 | FileReference | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
ファイルシステムにアクセスする権限を要求します。 | FileReference | ||
ローカルファイルシステムにファイルを保存するためのダイアログボックスを開きます。 | FileReference | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
リモートサーバーへのファイルのアップロードを開始します。 | FileReference | ||
ファイルをエンコードせずに URL へのアップロードを開始します。 | FileReference | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
イベント | 概要 | 定義元 | ||
---|---|---|---|---|
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | |||
ユーザーがアップロードまたはダウンロードするファイルをファイル参照ダイアログボックスからキャンセルしたときに送出されます。 | FileReference | |||
ダウンロードが完了、またはアップロードで HTTP ステータスコード 200 が生成された場合に送出されます。 | FileReference | |||
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | |||
upload() または uploadUnencoded() メソッドを呼び出して HTTP を介してデータにアクセスを試み、Adobe AIR で要求のステータスコードを検出して返すことができる場合に送出されます。 | FileReference | |||
アップロードに失敗し、HTTP ステータスコードを使用して失敗を記述することができない場合に送出されます。 | FileReference | |||
アップロードまたはダウンロードが失敗したときに送出されます。 | FileReference | |||
アップロード処理またはダウンロード処理が開始するときに送出されます。 | FileReference | |||
ファイルシステムにアクセスする権限をアプリケーションから要求したときに送出されます。 | FileReference | |||
ファイルのアップロード処理中またはダウンロード処理中に定期的に送出されます。 | FileReference | |||
FileReference.upload() または FileReference.download() メソッドの呼び出しによって、サーバーにファイルをアップロードするか、呼び出し元のセキュリティサンドボックスの外部にあるサーバーからファイルを取得しようとしたときに送出されます。 | FileReference | |||
ユーザーがアップロードするファイルまたはダウンロードするファイルをファイル参照ダイアログボックスから選択したときに、送出されます。 | FileReference | |||
アップロードの正常終了後、サーバーからデータを受信したときに送出されます。 | FileReference |
creationDate | プロパティ |
creationDate:Date
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ローカルディスク上に存在するファイルの作成日です。オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null
が返されます。
注意:オペレーティングシステムのプロパティとして creationDate
が指定されていない場合は、CreationDate
が lastModifiedDate
に等しくなります。
実装
public function get creationDate():Date
例外
IllegalOperationError — FileReference.browse() 、FileReferenceList.browse() 、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、creationDate プロパティの値は null です。
| |
IOError — ファイル情報にアクセスできない場合、I/O エラーを示すメッセージとともにエラーがスローされます。
|
関連する API エレメント
creator | プロパティ |
creator:String
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ファイルの Macintosh クリエータータイプです。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 です。
|
関連する API エレメント
data | プロパティ |
data:ByteArray
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
load()
メソッドの呼び出しが成功した後に読み込まれるファイルからのデータを表す ByteArray オブジェクト。
実装
public function get data():ByteArray
例外
IllegalOperationError — load() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、data プロパティの値は null です。
| |
IOError — ファイルを開くことや読み取ることができない場合、またはファイルへのアクセスで同様のエラーが発生した場合、例外がスローされ、ファイルの I/O エラーを知らせるメッセージが送信されます。この場合、data プロパティの値は null です。
|
関連する API エレメント
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 |
ランタイムバージョン: | AIR 1.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 エラーを示すメッセージとともにエラーがスローされます。
|
関連する API エレメント
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() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。
|
関連する API エレメント
permissionStatus | プロパティ |
size | プロパティ |
size:Number
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
ローカルディスク上に存在するファイルのサイズ(バイト単位)です。
注意:ActionScript 3.0 の初期のバージョンでは、size
プロパティは、4 GB 程度までのサイズのファイルをサポートする uint オブジェクトとして定義されていました。現在では、それよりも大きいファイルをサポートする Number オブジェクトとして実装されています。
実装
public function get size():Number
例外
IllegalOperationError — FileReference.browse() 、FileReferenceList.browse() または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。
| |
IOError — ファイルを開くことや読み取ることができない場合、またはファイルへのアクセスで同様のエラーが発生した場合、例外がスローされ、ファイルの I/O エラーを知らせるメッセージが送信されます。
|
関連する API エレメント
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 です。
|
関連する API エレメント
FileReference | () | コンストラクター |
public function FileReference()
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
新しい FileReference オブジェクトを作成します。設定されると、FileReference オブジェクトはユーザーのローカルディスク上のファイルを表します。
関連する API エレメント
browse | () | メソッド |
public function browse(typeFilter:Array = null):Boolean
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
アップロードするファイルを選択できるファイル参照ダイアログボックスを表示します。このダイアログボックスは、オペレーティングシステムのネイティブのダイアログボックスです。ユーザーは、例えば Windows の UNC パスを使用して、ローカルコンピューターまたは他のコンピューターからファイルを選択できます。
注意:Adobe AIR で利用可能な File クラスにはさらに固有のシステムファイル選択ダイアログボックスにアクセスするためのメソッドが含まれています。 これらのメソッドは File.browseForDirectory()
、File.browseForOpen()
、File.browseForOpenMultiple()
、および File.browseForSave()
です。
このメソッドを呼び出して、ユーザーが正常にファイルを選択すると、この 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 については、同時に複数の操作を実行しても、この制限には影響されません。
Adobe AIR では、ファイル参照ダイアログボックスは他のウィンドウによって「所有されている」(owner
プロパティが null 以外に設定されている)ウィンドウの前面に常に表示されるとは限りません。ウィンドウの表示順序の問題を回避するには、このメソッドを呼び出す前に所有されているウィンドウを非表示にします。
パラメーター
typeFilter:Array (default = null ) — ダイアログボックスに表示するファイルをフィルターにかける場合に使用する FileFilter インスタンスの配列です。このパラメーターを省略すると、すべてのファイルが表示されます。詳細については、FileFilter クラスを参照してください。
|
Boolean — パラメーターが有効で、ファイル参照ダイアログボックスが表示された場合に、true を返します。
|
イベント
select: — ユーザーが「参照」ファイル選択からアイテムを正しく選択すると、送出されます。
| |
cancel: — ユーザーがファイルアップロードの参照ウィンドウをキャンセルすると、送出されます。
|
例外
IllegalOperationError — 次の状況でスローされます。1)他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2)ユーザーの mms.cfg ファイルの設定により、この操作が禁止されている場合。
| |
ArgumentError — typeFilter 配列に、不正な形式の FileFilter オブジェクトが含まれていると、例外がスローされます。FileFilter オブジェクトの正しい形式の詳細については、FileFilter クラスを参照してください。
| |
Error — マウスイベントやキー入力イベントなどのユーザー操作に応じてメソッドが呼び出されない場合。
|
関連する API エレメント
cancel event
FileReference.download()
FileReferenceList.browse()
File.browseForDirectory()
File.browseForOpen()
File.browseForOpenMultiple()
File.browseForSave()
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()
を呼び出した後にダイアログボックスやダウンロード処理の状態を確認するには、コードで cancel
、open
、progress
、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 セキュリティモデルを考慮してください。
- 呼び出し元 SWF ファイルが信頼されないコードとしてローカルのサンドボックスに置かれている場合、ロード操作は実行できません。
- デフォルトの動作では、サンドボックス間のアクセスは拒否されます。URL ポリシーファイルを追加することによって、Web サイトでリソースにアクセスできるようになります。
- SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページに
allowNetworking
パラメーター(object
タグおよびembed
タグのパラメーター)を設定します。 - Flash Player 10 および Flash Player 9 Update 5 では、このメソッドの呼び出しは、マウスのクリックやキー入力などのユーザーイベントに応じてイベントハンドラーで呼び出した場合にのみ成功します。それ以外の場合は、このメソッドを呼び出すと、Flash Player から例外がスローされます。
ただし、Adobe AIR では、application
セキュリティサンドボックス内のコンテンツ(AIR アプリケーションと共にインストールされたコンテンツ)は、これらのセキュリティ制限による制限を受けません。
セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。
このメソッドを使用してファイルをダウンロードすると、ダウンロードされたファイルにフラグを付けるオペレーティングシステムにダウンロードされたというフラグが付きます。
- Windows XP Service Pack 2 以降および Windows Vista
- Mac OS 10.5 以降
Linux などの一部のオペレーティングシステムは、ダウンロードされたファイルにフラグを付けません。
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 については、同時に複数の操作を実行しても、この制限には影響されません。
Adobe AIR では、ダウンロードダイアログボックスは他のウィンドウによって「所有」されている(owner
プロパティが null 以外に設定されている)ウィンドウの前面に常に表示されるとは限りません。ウィンドウの表示順序の問題を回避するには、このメソッドを呼び出す前に所有されているウィンドウを非表示にします。
パラメーター
request:URLRequest — URLRequest オブジェクトです。URLRequest オブジェクトの url プロパティには、ローカルコンピューターにダウンロードするファイルの URL を設定する必要があります。このパラメーターが null の場合、例外がスローされます。URLRequest オブジェクトの requestHeaders プロパティは無視されるため、カスタム HTTP リクエストヘッダーはアップロードまたはダウンロードでサポートされません。POST パラメーターまたは GET パラメーターをサーバーに送信するには、URLRequest.data の値に任意のパラメーターを設定し、URLRequest.method に URLRequestMethod.POST または URLRequestMethod.GET を設定します。
一部のブラウザーでは、URL ストリングの長さに制限があるものがあります。長さが 256 文字を超える場合、一部のブラウザーまたはサーバーでは失敗する場合があります。 | |
defaultFileName:String (default = null ) — ダウンロードするファイルとしてダイアログボックスに表示するデフォルトファイル名です。このストリングに、文字 / \ : * ? " < > | % を含めないでください。
このパラメーターを省略すると、リモート URL のファイル名が構文解析されて、デフォルトとして使用されます。 |
イベント
open: — ダウンロード処理が開始したときに送出されます。
| |
progress: — ファイルのダウンロード処理中に定期的に送出されます。
| |
complete: — ファイルのダウンロード処理が正常に完了したときに送出されます。
| |
cancel: — ユーザーがダイアログボックスを閉じると、送出されます。
| |
select: — ダウンロードするファイルをユーザーがダイアログボックスから選択すると、送出されます。
| |
securityError: — セキュリティエラーが原因でダウンロードが失敗したときに送出されます。
| |
ioError: — 次のいずれかの理由で送出されます。
|
例外
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.useCodePage が true に設定されている場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、FileReference.download() メソッドに渡された URLRequest オブジェクトが POST 操作を行うように設定されている場合に発生することがあります。
| |
Error — マウスイベントやキー入力イベントなどのユーザー操作に応じてメソッドが呼び出されない場合。
|
関連する API エレメント
FileReference.browse()
FileReferenceList.browse()
FileReference.upload()
FileReference.save()
例 ( この例の使用方法 )
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 つずつ読み込む必要があります。個別にファイルを読み込むには、FileReference オブジェクトの FileReferenceList.fileList
配列を繰り返し処理します。
Adobe AIR にはまた、ファイルを読み込むためのさらに多くのオプションを提供する FileStream クラスが含まれています。
FileReference.upload()
関数、FileReference.download()
関数、FileReference.load()
関数および FileReference.save()
関数はノンブロッキング処理を行います。 これらの関数は呼び出された後、ファイル転送が完了する前に返されます。さらに、FileReference オブジェクトがスコープ外に移動した場合、そのオブジェクトに対して完了していないトランザクションは、スコープから離れた時点でキャンセルされます。アップロード、ダウンロード、読み込みまたは保存の続行を期待できる限りは、FileReference オブジェクトがスコープ内にあることを確認してください。
ファイルのロードが正常に終了すると、コンテンツは FileReference オブジェクトの data
プロパティにバイト配列として格納されます。
次のセキュリティに関する考慮事項が適用されます。
- 呼び出し元 SWF ファイルが信頼されないコードとしてローカルのサンドボックスに置かれている場合、ロード操作は実行できません。
- デフォルトの動作では、サンドボックス間のアクセスは拒否されます。クロスドメインポリシーファイルを追加することによって、Web サイトでリソースにアクセスできるようになります。
- ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含む HTML ページに
allowNetworking
パラメーター(object
タグおよびembed
タグ)を設定します。
ただし、これらの考慮事項はアプリケーションサンドボックス内の 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 の以前のバージョンは同時に複数の操作を実行しても、この制限には影響されません。
Adobe AIR では、ファイル参照ダイアログボックスは他のウィンドウによって「所有されている」(owner
プロパティが null 以外に設定されている)ウィンドウの前面に常に表示されるとは限りません。ウィンドウの表示順序の問題を回避するには、このメソッドを呼び出す前に所有されているウィンドウを非表示にします。
イベント
open: — 読み込み処理が開始したときに送出されます。
| |
progress: — ファイルの読み込み処理中に定期的に送出されます。
| |
complete: — ファイルの読み込み処理が正常に完了したときに送出されます。
| |
ioError: — アプリケーションによるファイルの読み込み中または書き込み中に入出力エラーにより読み込みが失敗した場合に呼び出されます。
|
例外
IllegalOperationError — 次の状況でスローされます。1)他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2)ユーザーの mms.cfg ファイルの設定により、この操作が禁止されている場合。
| |
MemoryError — このエラーは、アプリケーションがファイルにメモリを割り当てることができない場合に発生することがあります。ファイルが大きすぎるか、または使用可能なメモリが少なすぎる可能性があります。
|
関連する API エレメント
FileReferenceList.browse()
FileReference.data
FileReferenceList.fileList
FileReference.save()
FileStream
例 ( この例の使用方法 )
var buttonShape:Shape = new Shape(); buttonShape.graphics.beginFill(0x336699); buttonShape.graphics.drawCircle(50, 50, 25); var button = new SimpleButton(buttonShape, buttonShape, buttonShape, buttonShape); addChild(button); var fileRef:FileReference= new FileReference(); button.addEventListener(MouseEvent.CLICK, onButtonClick); function onButtonClick(e:MouseEvent):void { fileRef.browse([new FileFilter("Images", "*.jpg;*.gif;*.png")]); fileRef.addEventListener(Event.SELECT, onFileSelected); } function onFileSelected(e:Event):void { fileRef.addEventListener(Event.COMPLETE, onFileLoaded); fileRef.load(); } function onFileLoaded(e:Event):void { var loader:Loader = new Loader(); loader.loadBytes(e.target.data); addChild(loader); }
requestPermission | () | メソッド |
public function requestPermission():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 24.0 |
ファイルシステムにアクセスする権限を要求します。
イベント
PermissionStatus: — 要求された権限がユーザーによって付与/拒否されたときに送出されます。
|
save | () | メソッド |
public function save(data:*, defaultFileName:String = null):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5 |
ローカルファイルシステムにファイルを保存するためのダイアログボックスを開きます。Flash Player ではアップロード、ダウンロード、ロードまたは保存できるファイルのサイズに制限はありませんが、このプレーヤーが正式にサポートしているサイズは最大 100 MB です。
save()
メソッドは、まず、オペレーティングシステムのダイアログボックスを表示して、ユーザーにファイル名を入力してもらった後、ファイルの保存先となるローカルコンピューター上の場所を選択してもらいます。ユーザーが保存場所を選択し、「保存」などをクリックして、ファイルをローカルに保存することを確認すると、保存処理が開始されます。リスナーは、保存処理が進行中なのか、成功したのか、失敗したのかを示すイベントを受け取ります。save()
を呼び出した後のダイアログボックスや保存処理の状態を確認するには、コードで cancel
、open
、progress
および complete
などのイベントを待機する必要があります。
Adobe AIR にはまた、ファイルをローカルで保存するためのさらに多くのオプションを提供する FileStream クラスが含まれています。
FileReference.upload()
関数、FileReference.download()
関数、FileReference.load()
関数および FileReference.save()
関数はノンブロッキング処理を行います。 これらの関数は呼び出された後、ファイル転送が完了する前に返されます。さらに、FileReference オブジェクトがスコープ外に移動した場合、そのオブジェクトに対して完了していないトランザクションは、スコープから離れた時点でキャンセルされます。アップロード、ダウンロード、読み込みまたは保存の続行を期待できる限りは、FileReference オブジェクトがスコープ内にあることを確認してください。
ファイルが正常に保存されると、FileReference オブジェクトのプロパティにローカルファイルのプロパティが設定されます。保存が成功した場合、complete
イベントが送出されます。
一度に 1 つの browse()
セッションまたは save()
セッションだけを実行できます。これは、一度に 1 つのダイアログボックスしか呼び出せないからです。
Flash Player では、このメソッドの呼び出しは、マウスのクリックやキー入力などのユーザーイベントに応じてイベントハンドラーで呼び出した場合にのみ成功します。それ以外の場合は、このメソッドを呼び出すと、Flash Player から例外がスローされます。この制限は、アプリケーションサンドボックス内の AIR コンテンツには適用されません。
Adobe AIR では、保存ダイアログボックスは他のウィンドウによって「所有」されている(owner
プロパティが null 以外に設定されている)ウィンドウの前面に常に表示されるとは限りません。ウィンドウの表示順序の問題を回避するには、このメソッドを呼び出す前に所有されているウィンドウを非表示にします。
パラメーター
data:* — 保存されるデータです。データは複数の形式のうちのいずれかになり、以下のように適切に処理されます。
| |
defaultFileName:String (default = null ) — 保存するファイルとしてダイアログボックスに表示するデフォルトファイル名です。このストリングに、文字 / \ : * ? " < > | % を含めないでください。
File オブジェクトがこのメソッドを呼び出すと、ファイル名は File オブジェクトが参照するファイルの名前になります(AIR File クラスは FileReference クラスを拡張します)。 |
イベント
open: — ダウンロード処理が開始したときに送出されます。
| |
progress: — ファイルのダウンロード処理中に定期的に送出されます。
| |
complete: — ファイルのダウンロード処理が正常に完了したときに送出されます。
| |
cancel: — ユーザーがダイアログボックスを閉じると、送出されます。
| |
select: — ダウンロードするファイルをユーザーがダイアログボックスから選択すると、送出されます。
| |
ioError: — ファイルの読み込み中または転送中に入出力エラーが発生した場合に送出されます。
|
例外
IllegalOperationError — 次の状況でスローされます。1)他のブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2)ダウンロードするファイルの名前に禁止文字が含まれている場合。3)ユーザーの mms.cfg ファイルの設定により、この操作が禁止されている場合。
| |
ArgumentError — data が ByteArray 型ではなく、toString() メソッドを持たない場合、例外がスローされます。data が XML 型ではなく、toXMLString() メソッドを持たない場合、例外がスローされます。
| |
Error — マウスイベントやキー入力イベントなどのユーザー操作に応じてメソッドが呼び出されない場合。
| |
MemoryError — このエラーは、Flash Player がファイルにメモリを割り当てることができない場合に発生することがあります。ファイルが大きすぎるか、または使用可能なメモリが少なすぎる可能性があります。
|
関連する API エレメント
FileReference.load()
FileReference.data
FileReference.upload()
FileReference.download()
FileStream
例 ( この例の使用方法 )
MyTextField
)および編集できない別のテキストフィールド(MyButtonField
)を作成して、マウスクリックに応答する「ボタン」として提供します。ユーザーは最初のテキストフィールドを編集して、テキストフィールドのコンテンツをローカルファイルに保存できます。 マウスクリックのイベントハンドラー clickhandler
は FileReference.save()
メソッド(MyFileReference
という名前の FileReference オブジェクトの場合)を使用して、ユーザーの現在のオペレーティングシステム上でダイアログを開くので、ユーザーはコンテンツをユーザーが付ける名前でローカルファイルに保存できます。
var MyTextField:TextField = new TextField(); var MyButtonField:TextField = new TextField(); var MyFile:FileReference = new FileReference(); MyTextField.border = true; MyTextField.type = TextFieldType.INPUT; MyButtonField.background = true; MyButtonField.backgroundColor = 0x339933; MyButtonField.x = 150; MyButtonField.height = 20; MyButtonField.text = "Click here to save"; addChild(MyTextField); addChild(MyButtonField); MyButtonField.addEventListener(MouseEvent.CLICK, clickhandler); function clickhandler(e:MouseEvent): void { MyFile.save(MyTextField.text); }
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()
メソッドを呼び出す必要があります。
FileReference クラスを拡張する Adobe AIR File クラスの場合は、upload()
メソッドを使用して任意のファイルをアップロードできます。Flash Player で使用される FileReference クラスの場合は、ユーザーは最初にファイルを選択する必要があります。
リスナーは、アップロードが進行中なのか、成功したのか、失敗したのかを示すイベントを受け取ります。FileReferenceList オブジェクトを使用すると、ユーザーが複数のファイルを選択してアップロードすることが可能になりますが、ファイルは 1 つずつアップロードする必要があります。この操作を実行するには、FileReference オブジェクトの FileReferenceList.fileList
配列で繰り返し処理を実行します。
FileReference.upload()
関数と FileReference.download()
関数はノンブロッキング処理を行います。これらの関数は呼び出された後、ファイル転送が完了する前に返されます。さらに、FileReference オブジェクトがスコープ外に移動した場合、そのオブジェクトに対して完了していないアップロードまたはダウンロードは、スコープから離れた時点でキャンセルされます。アップロードまたはダウンロードの続行を期待できる限りは、FileReference オブジェクトがスコープ内にあることを確認してください。
ファイルは、url
パラメーターに渡された URL にアップロードされます。URL は、アップロードを許可するよう設定されたサーバースクリプトである必要があります。Flash Player は、HTTP POST
メソッドを使用してファイルをアップロードします。アップロードを処理するサーバースクリプトは、次のエレメントを持つ POST
リクエストを想定しています。
Content-Type
のmultipart/form-data
Content-Disposition
のname
属性の設定がデフォルトの"Filedata"
、filename
属性の設定がオリジナルファイルの名前- ファイルのバイナリコンテンツ
一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『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 セキュリティモデルを考慮してください。
- 呼び出し元 SWF ファイルが信頼されないコードとしてローカルのサンドボックスに置かれている場合、ロード操作は実行できません。
- デフォルトの動作では、サンドボックス間のアクセスは拒否されます。URL ポリシーファイルを追加することによって、Web サイトでリソースにアクセスできるようになります。
- SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページに
allowNetworking
パラメーター(object
タグおよびembed
タグのパラメーター)を設定します。
ただし、Adobe AIR では、アプリケーション
セキュリティサンドボックス内のコンテンツ(AIR アプリケーションと共にインストールされたコンテンツ)は、これらのセキュリティ制限による制限を受けません。
セキュリティについて詳しくは、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 については、同時に複数の操作を実行しても、この制限には影響されません。
パラメーター
request:URLRequest — URLRequest オブジェクトです。URLRequest オブジェクトの url プロパティには、HTTP の POST 呼び出しを使用してアップロードを処理するように設定したサーバースクリプトの URL を設定する必要があります。一部のブラウザーでは、URL ストリングの長さに制限があるものがあります。長さが 256 文字を超える場合、一部のブラウザーまたはサーバーでは失敗する場合があります。このパラメーターが null の場合、例外がスローされます。URLRequest オブジェクトの requestHeaders プロパティは無視されるため、カスタム HTTP リクエストヘッダーはアップロードまたはダウンロードでサポートされません。
この URL では、HTTP または HTTPS(セキュアアップロード)を使用できます。HTTPS を使用するには、
| |
uploadDataFieldName:String (default = "Filedata ") — アップロード POST 操作のファイルデータに先行するフィールド名です。uploadDataFieldName 値は、null 以外、空白以外のストリングである必要があります。デフォルトでは、uploadDataFieldName の値は "Filedata" です。次のサンプル POST 要求を参照してください。
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 ) — テストファイルアップロードを要求するための設定です。testUpload が true の場合、10 KB を超えるファイルに対し、Flash Player は、Content-Length を 0 としてテストファイルアップロードの POST を試行します。 テストアップロードでは、実際のファイルアップロードが成功するかどうか、必要な場合はサーバー認証が成功するかどうかがチェックされます。 テストアップロードは、Windows プレーヤーでのみ使用できます。
|
イベント
open: — アップロード処理が開始したときに送出されます。
| |
progress: — ファイルのアップロード処理中に定期的に送出されます。
| |
complete: — ファイルのアップロード処理が正常に完了したときに送出されます。
| |
uploadCompleteData: — ファイルアップロードの正常終了後、サーバーからデータを受信したときに送出されます。
| |
securityError: — セキュリティ侵害が原因でアップロードが失敗した場合に送出されます。
| |
httpStatus: — HTTP エラーが原因でアップロードが失敗した場合に送出されます。
| |
httpResponseStatus: — アップロード操作が正常に完了すると、サーバーは応答 URL と応答ヘッダーを返します。
| |
ioError: — 次のいずれかの場合に呼び出されます。
|
例外
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.useCodePage が true に設定されている場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、FileReference.upload() に渡された URLRequest オブジェクトが POST 操作を行うように設定されている場合に発生することがあります。
|
関連する API エレメント
uploadUnencoded | () | メソッド |
public function uploadUnencoded(request:URLRequest):void
ランタイムバージョン: | AIR 1.0 |
ファイルをエンコードせずに URL へのアップロードを開始します。upload()
メソッドはファイルを form-data エンベロープでエンコードしますが、uploadUnencoded()
メソッドは HTTP 要求の本体でファイルコンテンツをそのまま渡します。送信しようとするデータが、受信するサーバーで理解可能な形式で既にエンコードされている場合、uploadUnencoded() メソッドを使用します。通常、uploadeUnencoded()
メソッドを、HTTP/WebDAV PUT
メソッドと共に使用します。
パラメーター
request:URLRequest — URLRequest オブジェクトです。URLRequest オブジェクトの url プロパティには、HTTP の POST 呼び出しを使用してアップロードを処理するように設定したサーバースクリプトの URL を設定する必要があります。一部のブラウザーでは、URL ストリングの長さに制限があるものがあります。長さが 256 文字を超える場合、一部のブラウザーまたはサーバーでは失敗する場合があります。このパラメーターが null の場合、例外がスローされます。
この URL では、HTTP または HTTPS(セキュアアップロード)を使用できます。HTTPS を使用するには、
|
イベント
open: — アップロード処理が開始したときに送出されます。
| |
progress: — ファイルのアップロード処理中に定期的に送出されます。
| |
complete: — ファイルのアップロード処理が正常に完了したときに送出されます。
| |
uploadCompleteData: — ファイルアップロードの正常終了後、サーバーからデータを受信したときに送出されます。
| |
securityError: — セキュリティ侵害が原因でアップロードが失敗した場合に送出されます。
| |
httpStatus: — HTTP エラーが原因でアップロードが失敗した場合に送出されます。
| |
httpResponseStatus: — アップロード操作が正常に完了すると、サーバーは応答 URL と応答ヘッダーを返します。
| |
ioError: — 次のいずれかの場合に呼び出されます。
|
例外
SecurityError — 信頼されていないローカル SWF ファイルはインターネットへの接続を許可されません。この問題を回避するには、この SWF ファイルを、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類します。この例外がスローされると、アクセスできないローカルファイルの名前および URL を示すメッセージが送信されます。
| |
IllegalOperationError — 次の状況でスローされます。1)他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) URL パラメーターが有効なパスまたはプロトコルでない場合。ファイルのアップロードには HTTP を使用する必要があります。
|
関連する API エレメント
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
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
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
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
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); } } }
関連する API エレメント
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
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
responseURL | 応答の返送元の URL です。 |
responseHeaders | 返された応答ヘッダー(URLRequestHeader オブジェクトの配列)です。 |
status | サーバーから返された HTTP ステータスコードです。 |
redirected | 応答にリダイレクトの結果があるかどうか。 |
target | HTTP ステータスコードを受け取るネットワークオブジェクトです。 |
関連する API エレメント
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
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
status | サーバーから返された HTTP ステータスコードです。 |
target | HTTP ステータスコードを受け取るネットワークオブジェクトです。 |
関連する API エレメント
ioError | イベント |
flash.events.IOErrorEvent
プロパティ IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
アップロードまたはダウンロードが失敗したときに送出されます。次のいずれかの理由により、ファイル転送に失敗することがあります。
- Player でファイルの読み込み中、書き込み中、または転送中に入出力エラーが発生した場合。
- ユーザー名とパスワードなど、認証が必要なサーバーに SWF ファイルがファイルをアップロードしようとした場合。Flash Player または Adobe AIR には、アップロード時にユーザーがパスワードを入力する手段が用意されていません。認証が必要なサーバーに対して SWF ファイルがファイルをアップロードしようとすると、アップロードは失敗します。
- スタンドアローンまたは外部 Player 内で、認証が必要なサーバーから SWF ファイルがファイルをダウンロードしようとした場合。ダウンロードする際、スタンドアローンプレーヤーと外部プレーヤーには、ユーザーがパスワードを入力する手段がありません。認証が必要なサーバーから、これらの Player 内の SWF ファイルがファイルをダウンロードしようとすると、ダウンロードは失敗します。ファイルのダウンロードは、ActiveX コントロール Player、ブラウザープラグイン Player、および Adobe AIR ランタイムでのみ成功する可能性があります。
url
パラメーター(upload()
メソッド)に渡された値に、無効なプロトコルが含まれている場合。有効なプロトコルは HTTP と HTTPS です。
重要:ブラウザー内で実行される、つまり、ブラウザープラグインまたは ActiveX コントロールを使用するアプリケーションと、Adobe AIR で実行されるコンテンツでのみ、認証用のユーザー名とパスワードを入力できるダイアログボックスを表示できます。ただし、それはダウンロードの場合のみです。 Flash Player のプラグインまたは ActiveX コントロールバージョンを使用するアップロードの場合、または、スタンドアローンまたは外部 Player を使用するアップロードまたはダウンロードの場合、ファイル転送は失敗します。
type
プロパティ(ioError
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
errorID | 特定のエラーに関連付けられた参照番号です(AIR のみ)。 |
target | 入出力エラーが発生したネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
関連する API エレメント
open | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.OPEN
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
アップロード処理またはダウンロード処理が開始するときに送出されます。
Event.OPEN
定数は、type
プロパティ(open
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
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); } } }
関連する API エレメント
permissionStatus | イベント |
flash.events.PermissionEvent
プロパティ PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 24.0 |
ファイルシステムにアクセスする権限をアプリケーションから要求したときに送出されます。status
プロパティの値を確認すると、権限が付与されたか拒否されたかを判定できます。
関連する API エレメント
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
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
bytesLoaded | リスナーがイベントを処理しているときに読み込まれたアイテム数またはバイト数です。 |
bytesTotal | 読み込みプロセスが成功した場合に最終的に読み込まれるアイテムまたはバイトの総数です。 |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
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); } } }
関連する API エレメント
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
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | セキュリティエラーを報告するネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
関連する API エレメント
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
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
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
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
data | ファイルアップロードが正常に終了した後、サーバーから返された生データです。 |
target | アップロードが正常に終了した後、データを受信する FileReference オブジェクトです。 |
注意:この例を実行するには、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); } } }
Tue Jun 12 2018, 10:34 AM Z