| パッケージ | flash.net |
| クラス | public class FileReference |
| 継承 | FileReference EventDispatcher Object |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
FileReference インスタンスは、次の 2 とおりの方法で作成できます。
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 イベントをリッスンして、処理が正常に終了したかどうかを確認して、エラー処理を行います。
アップロード処理およびダウンロード処理の場合、SWF ファイルは、それ自体のドメイン内に含まれるファイルだけにアクセスできます。こうしたドメインには、クロスドメインポリシーファイルで指定されたドメインが含まれます。アップロードまたはダウンロードを開始している SWF が、ファイルサーバーと同じドメインに属していない場合、ファイルサーバーにポリシーファイルを配置します。
FileReference.browse()、FileReferenceList.browse()、または FileReference.download() メソッド呼び出しの実行中、Mac OS X 10.1 以前でのスタンドアローンおよび外部 Player では、SWF ファイルの再生が一時停止します。
パラメータが指定されていない場合は、次のサンプルの HTTP POST 要求が Flash Player からサーバーサイドスクリプトに送信されます。
POST /handler.cfm HTTP/1.1 Accept:text/* Content-Type:multipart/form-data; boundary=----------Ij5ae0ae0KM7GI3KM7ei4cH2ei4gL6 User-Agent:Shockwave Flash Host:www.example.com Content-Length:421 Connection:Keep-Alive Cache-Control:no-cache ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="Filename" MyFile.jpg ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="photo"; filename="MyFile.jpg" Content-Type:application/octet-stream FileDataHere ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="Upload" Submit Query ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
Flash Player が次の HTTP POST 要求を送信するのは、ユーザーが "api_sig"、"api_key"、および "auth_token" パラメータを指定した場合です。
POST /handler.cfm HTTP/1.1 Accept:text/* Content-Type:multipart/form-data; boundary=----------Ij5ae0ae0KM7GI3KM7ei4cH2ei4gL6 User-Agent:Shockwave Flash Host:www.example.com Content-Length:421 Connection:Keep-Alive Cache-Control:no-cache ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="Filename" MyFile.jpg ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="api_sig" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="api_key" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="auth_token" XXXXXXXXXXXXXXXXXXXXXX ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="photo"; filename="MyFile.jpg" Content-Type:application/octet-stream FileDataHere ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7 Content-Disposition:form-data; name="Upload" Submit Query ------------Ij5GI3GI3ei4GI3ei4KM7GI3KM7KM7--
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
| creationDate : Date
[read-only]
ローカルディスク上に存在するファイルの作成日です。
| FileReference | ||
| creator : String
[read-only]
ファイルの Macintosh クリエータタイプです。
| FileReference | ||
| modificationDate : Date
[read-only]
ローカルディスク上に存在するファイルの最終変更日です。
| FileReference | ||
| name : String
[read-only]
ローカルディスク上に存在するファイルの名前です。
| FileReference | ||
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| size : uint
[read-only]
ローカルディスク上に存在するファイルのサイズ (バイト単位) です。
| FileReference | ||
| type : String
[read-only]
ファイル形式です。
| 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 | |
![]() |
指定されたプロパティが存在し列挙できるかどうかを示します。
| Object | |
![]() |
EventDispatcher オブジェクトからリスナーを削除します。
| EventDispatcher | |
![]() |
ループ処理に対するダイナミックプロパティの可用性を設定します。
| Object | |
![]() |
指定されたオブジェクトのストリング表現を返します。
| Object | |
|
upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
ユーザーが選択したファイルをリモートサーバーにアップロードする処理を開始します。
| FileReference | ||
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
| ユーザーがアップロードまたはダウンロードするファイルをファイル参照ダイアログボックスからキャンセルしたときに送出されます。 | FileReference | |||
| ダウンロードが完了、またはアップロードで HTTP ステータスコード 200 が生成された場合に送出されます。 | FileReference | |||
![]() | Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | ||
| アップロードに失敗し、HTTP ステータスコードを使用して失敗を記述することができない場合に送出されます。 | FileReference | |||
| アップロードまたはダウンロードが失敗したときに送出されます。 | FileReference | |||
| アップロード処理またはダウンロード処理が開始するときに送出されます。 | FileReference | |||
| ファイルのアップロード処理中またはダウンロード処理中に定期的に送出されます。 | FileReference | |||
| FileReference.upload() または FileReference.download() メソッドの呼び出しによって、サーバーにファイルをアップロードするか、呼び出し元のセキュリティサンドボックスの外部にあるサーバーからファイルを取得しようとしたときに送出されます。 | FileReference | |||
| ユーザーがアップロードするファイルまたはダウンロードするファイルをファイル参照ダイアログボックスから選択したときに、送出されます。 | FileReference | |||
| アップロードの正常終了後、サーバーからデータを受信したときに送出されます。 | FileReference | |||
| creationDate | プロパティ |
creationDate:Date [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ローカルディスク上に存在するファイルの作成日です。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。
public function get creationDate():Date
IllegalOperationError — FileReference.browse()、FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、creationDate プロパティの値は null です。
|
|
IOError — ファイル情報にアクセスできない場合、I/O エラーを示すメッセージと共に例外がスローされます。
|
関連項目
| creator | プロパティ |
creator:String [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ファイルの Macintosh クリエータタイプです。Windows の場合、このプロパティは null になります。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。
public function get creator():String
IllegalOperationError — Macintosh では、FileReference.browse()、FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、creator プロパティの値は null です。
|
関連項目
| modificationDate | プロパティ |
modificationDate:Date [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | 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 [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ローカルディスク上に存在するファイルの名前です。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。
FileReference オブジェクトのすべてのプロパティの値は、browse() メソッドを呼び出すことにより設定されます。download() メソッドを呼び出した場合、FileReference の他のプロパティと異なり、name プロパティの値は select イベントが送出されたときに設定されます。
public function get name():String
IllegalOperationError — FileReference.browse()、FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、name プロパティの値は null です。
|
関連項目
| size | プロパティ |
size:uint [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ローカルディスク上に存在するファイルのサイズ (バイト単位) です。size が 0 の場合、例外がスローされます。
public function get size():uint
IllegalOperationError — FileReference.browse()、FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、size プロパティの値は 0 です。
|
|
IOError — ファイルを開くこと、読み取ることができない場合、またはファイルへのアクセスで同様のエラーが発生した場合、例外がスローされ、ファイルの I/O エラーを知らせるメッセージが送信されます。この場合、size プロパティの値は 0 です。
|
関連項目
| type | プロパティ |
type:String [read-only]
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ファイル形式です。Windows の場合、このプロパティはファイル拡張子になります。Macintosh の場合、このプロパティは 4 文字のファイルタイプになります。FileReference オブジェクトに値が設定されていない場合に、このプロパティの値を取得する呼び出しが行われると null を返します。
public function get type():String
IllegalOperationError — FileReference.browse()、FileReferenceList.browse()、または FileReference.download() メソッドの呼び出しが失敗すると、例外がスローされ、関数の呼び出しシーケンスが正しくないこと、または以前の呼び出しが失敗したことを知らせるメッセージが送信されます。この場合、type プロパティの値は null です。
|
| FileReference | () | コンストラクタ |
public function FileReference()
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
新しい FileReference オブジェクトを作成します。設定されると、FileReference オブジェクトはユーザーのローカルディスク上のファイルを表します。
関連項目
| browse | () | メソッド |
public function browse(typeFilter:Array = null):Boolean
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
アップロードするファイルを選択できるファイル参照ダイアログボックスを表示します。このダイアログボックスは、オペレーティングシステムのネイティブのダイアログボックスです。ユーザーは、たとえば Windows の UNC パスを使用して、ローカルコンピュータまたは他のコンピュータからファイルを選択できます。
このメソッドを呼び出して、ユーザーが正常にファイルを選択すると、この FileReference オブジェクトのプロパティにそのファイルのプロパティが設定されます。これ以降 FileReference.browse() メソッドが呼び出されるたびに、FileReference オブジェクトのプロパティは、ダイアログボックスでユーザーが選択したファイルに再設定されます。一度に 1 つの browse() セッションまたは download() セッションだけを実行できます。これは、一度に 1 つのダイアログボックスしか呼び出せないからです。
どのファイルをダイアログボックスに表示するかを決定するために、typeFilter パラメータを使用できます。
パラメータ
typeFilter:Array (default = null) — ダイアログボックスに表示するファイルをフィルタにかける場合に使用する FileFilter インスタンスの配列です。このパラメータを省略すると、すべてのファイルが表示されます。詳細については、FileFilter クラスを参照してください。
|
Boolean — パラメータが有効で、ファイル参照ダイアログボックスが表示された場合に、true を返します。browse メソッドが false を返すのは、ダイアログボックスが開かなかった場合、既に他のブラウザセッションが進行中である場合、または typelist パラメータが使用されたが、配列内のエレメントに説明用文字列または拡張子ストリングが指定されていない場合です。
|
select: — ユーザーが [参照] ファイル選択からアイテムを正しく選択すると、送出されます。 |
|
cancel: — ユーザーがファイルアップロードの [参照] ウィンドウをキャンセルすると、送出されます。 |
IllegalOperationError — 次の状況でスローされます。1) 他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) ユーザーの "mms.cfg" ファイルの設定により、この操作が禁止されている場合。
|
|
ArgumentError — typeFilter 配列に、不正な形式の FileFilter オブジェクトが含まれていると、例外がスローされます。FileFilter オブジェクトの正しい形式の詳細については、FileFilter クラスを参照してください。
|
関連項目
| cancel | () | メソッド |
public function cancel():void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
この FileReference オブジェクトで進行中のアップロード処理またはダウンロード処理を取り消します。このメソッドを呼び出しても cancel イベントは送出されません。このイベントは、ユーザーがファイルアップロードまたはダウンロードのダイアログボックスを閉じて処理をキャンセルした場合にのみ送出されます。
| download | () | メソッド |
public function download(request:URLRequest, defaultFileName:String = null):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
リモートサーバーからファイルをダウンロードするためのダイアログボックスを開きます。Flash Player ではアップロードまたはダウンロードできるファイルのサイズに制限はありませんが、このプレーヤーが正式にサポートしているアップロードまたはダウンロードのサイズは最大 100 MB です。
download() メソッドは、まず、オペレーティングシステムのダイアログボックスを表示して、ユーザーにファイル名を入力してもらった後、ファイルの保存先となるローカルコンピュータ上の場所を選択してもらいます。ユーザーが保存場所を選択し、[保存] などをクリックして、ファイルをローカルに保存することを確認すると、リモートサーバーからのダウンロードが開始します。リスナーは、ダウンロードが進行中なのか、成功したのか、失敗したのかを示すイベントを受け取ります。download() を呼び出した後のダイアログボックスやダウンロード処理の状態を確認するには、ActionScript で cancel、open、progress、および complete などのイベントをリッスンする必要があります。
FileReference.upload() 関数と FileReference.download() 関数はノンブロッキング処理を行います。これらの関数は呼び出された後、ファイル転送が完了する前に返されます。さらに、FileReference オブジェクトがスコープ外に移動した場合、そのオブジェクトに対して完了していないアップロードまたはダウンロードは、スコープから離れた時点でキャンセルされます。アップロードまたはダウンロードの続行を期待できる限りは、FileReference オブジェクトがスコープ内にあることを確認してください。
ファイルが正常にダウンロードされると、FileReference オブジェクトのプロパティにローカルファイルのプロパティが設定されます。ダウンロードが成功した場合、complete イベントが送出されます。
一度に 1 つの browse() セッションまたは download() セッションだけを実行できます。これは、一度に 1 つのダイアログボックスしか呼び出せないからです。
このメソッドは、どのファイルタイプのダウンロードにも対応しており、HTTP と HTTPS のいずれも使用できます。
メモ : サーバーでユーザー認証が必要な場合、ブラウザ内で実行される、つまり、ブラウザプラグインまたは ActiveX コントロールを使用する SWF ファイルでのみ、認証用のユーザー名とパスワードをユーザーが入力できるダイアログボックスを表示できます。ただし、それはダウンロードの場合のみです。プラグインまたは ActiveX コントロールを使用するアップロードの場合、または、スタンドアローンまたは外部 Player を使用するアップロードとダウンロードの場合、ファイル転送は失敗します。
このメソッドを使用するときは、Flash Player セキュリティモデルを考慮してください。
allowNetworking パラメータ (object タグおよび embed タグ) を設定します。詳細については、以下を参照してください。
パラメータ
request:URLRequest — URLRequest オブジェクトです。URLRequest オブジェクトの url プロパティには、ローカルコンピュータにダウンロードするファイルの URL を設定する必要があります。このパラメータが null の場合、例外がスローされます。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 ファイル、または信頼できる SWF ファイルとして再分類します。この例外がスローされると、ローカルファイルのセキュリティ制限が原因でアクセスできないファイル名および URL を示すメッセージが送信されます。
|
|
ArgumentError — url.data が ByteArray 型の場合、例外がスローされます。FileReference.upload() メソッドおよび FileReference.download() メソッドと一緒に使用する場合、url.data は URLVariables 型または String 型のみになります。
|
|
MemoryError — このエラーは、次の理由で発生する可能性があります。1) Flash Player では URLRequest.data パラメータを UTF8 から MBCS に変換できません。このエラーは、FileReference.download() メソッドに渡された URLRequest オブジェクトが GET 操作を行うように設定されている場合、および System.useCodePage が true に設定されている場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、FileReference.download() メソッドに渡された URLRequest オブジェクトが POST 操作を行うように設定されている場合に発生することがあります。
|
関連項目
download イベントオブジェクトの使用方法を示します。この例を実行するには、downloadURL.url プロパティを変更して、架空の http://www.[yourDomain].com/SomeFile.pdf ではなく実際のドメインとファイルを参照するようにします。[ローカルでの再生に関するセキュリティ] を [ネットワークにのみアクセスする] に設定して SWF ファイルをコンパイルする必要がある場合もあります。または Flash Player のセキュリティ設定を更新して、このファイルのネットワークアクセスを許可する必要がある場合があります。
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.net.FileFilter;
public class FileReference_download extends Sprite {
private var downloadURL:URLRequest;
private var fileName:String = "SomeFile.pdf";
private var file:FileReference;
public function FileReference_download() {
downloadURL = new URLRequest();
downloadURL.url = "http://www.[yourDomain].com/SomeFile.pdf";
file = new FileReference();
configureListeners(file);
file.download(downloadURL, fileName);
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
private function cancelHandler(event:Event):void {
trace("cancelHandler: " + event);
}
private function completeHandler(event:Event):void {
trace("completeHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
private function openHandler(event:Event):void {
trace("openHandler: " + event);
}
private function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
trace("progressHandler name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
}
private function securityErrorHandler(event:SecurityErrorEvent):void {
trace("securityErrorHandler: " + event);
}
private function selectHandler(event:Event):void {
var file:FileReference = FileReference(event.target);
trace("selectHandler: name=" + file.name + " URL=" + downloadURL.url);
}
}
}| upload | () | メソッド |
public function upload(request:URLRequest, uploadDataFieldName:String = "Filedata", testUpload:Boolean = false):void
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | 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 リクエストを想定しています。
Content-Type の multipart/form-dataContent-Disposition の name 属性の設定がデフォルトの "Filedata"、filename 属性の設定がオリジナルファイルの名前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 セキュリティモデルに関する次の制限に注意してください。
allowNetworking パラメータ (object タグおよび embed タグ) を設定します。詳細については、以下を参照してください。
パラメータ
request:URLRequest — URLRequest オブジェクトです。URLRequest オブジェクトの url プロパティには、HTTP の POST 呼び出しを使用してアップロードを処理するように設定したサーバースクリプトの URL を設定する必要があります。一部のブラウザでは、URL ストリングの長さに制限があるものがあります。長さが 256 文字を超える場合、一部のブラウザまたはサーバーでは失敗する場合があります。このパラメータが null の場合、例外がスローされます。
この 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 はコンテンツ長 0 でテストファイルアップロードの POST を試行します。このテストアップロードでは、実際のファイルのアップロードが成功するかどうか、サーバー認証が必要な場合はそれが成功するかどうかがチェックされます。テストアップロードは、Windows プレーヤーでのみ使用できます。
|
open: — アップロード処理が開始したときに送出されます。 |
|
progress: — ファイルのアップロード処理中に定期的に送出されます。 |
|
complete: — ファイルのアップロード処理が正常に完了したときに送出されます。 |
|
uploadCompleteData: — ファイルアップロードの正常終了後、サーバーからデータを受信したときに送出されます。 |
|
securityError: — セキュリティ侵害が原因でアップロードが失敗した場合に送出されます。 |
|
httpStatus: — HTTP エラーが原因でアップロードが失敗した場合に送出されます。 |
|
ioError: — 次のいずれかの状況に合致する場合に呼び出されます。
|
SecurityError — 信頼されていないローカル SWF はインターネットへの接続を許可されません。この問題を回避するには、この SWF ファイルを、ネットワークアクセスを許可されたローカル SWF ファイル、または信頼できる SWF ファイルとして再分類します。この例外がスローされると、アクセスできないローカルファイルの名前および URL を示すメッセージが送信されます。
|
|
IllegalOperationError — 次の状況でスローされます。1) 他の FileReference ブラウズセッション、または FileReferenceList ブラウズセッションが進行中の場合。ファイルブラウズのセッションは、一度に 1 つのみ実行できます。2) URL パラメータが有効なパスまたはプロトコルでない場合。ファイルのアップロードでは HTTP を使用し、ファイルのダウンロードでは FTP または HTTP を使用する必要があります。3) uploadDataFieldName パラメータが null に設定されている場合。4) ユーザーの "mms.cfg" ファイルの設定により、この操作が禁止されている場合。
|
|
ArgumentError — 次の状況でスローされます。1) uploadDataFieldName パラメータが空のストリングの場合。2) url.data が ByteArray 型の場合。FileReference.upload() メソッドおよび FileReference.download() メソッドと一緒に使用する場合、url.data は URLVariables 型または String 型のみになります。
|
|
MemoryError — このエラーは、次の理由で発生する可能性があります。1) Flash Player では URLRequest.data パラメータを UTF8 から MBCS に変換できません。このエラーは、FileReference.upload() に渡された URLRequest オブジェクトが GET 操作を行うように設定されている場合、および System.useCodePage が true に設定されている場合に発生することがあります。2) Flash Player では POST データにメモリを割り当てることができません。このエラーは、FileReference.upload() に渡された URLRequest オブジェクトが POST 操作を行うように設定されている場合に発生することがあります。
|
関連項目
| cancel | イベント |
flash.events.Event
flash.events.Event.CANCEL
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ユーザーがアップロードまたはダウンロードするファイルをファイル参照ダイアログボックスからキャンセルしたときに送出されます。ユーザーが他の手段 (ブラウザを閉じたり、現在のアプリケーションを停止したりすること) によってアップロードまたはダウンロードをキャンセルした場合、Flash Player はこのイベントを送出しません。
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
flash.events.Event.COMPLETE
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ダウンロードが完了、またはアップロードで HTTP ステータスコード 200 が生成された場合に送出されます。ファイルのダウンロードの場合、Flash Player でディスクへのファイル全体のダウンロードが完了すると、このイベントが送出されます。ファイルのアップロードの場合、転送を受信したサーバーから HTTP ステータスコード 200 を Flash Player が受け取った後、このイベントが送出されます。
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);
}
}
}関連項目
| httpStatus | イベント |
flash.events.HTTPStatusEvent
flash.events.HTTPStatusEvent.HTTP_STATUS
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
アップロードに失敗し、HTTP ステータスコードを使用して失敗を記述することができない場合に送出されます。httpStatus イベントが送出された後、ioError イベントが送出されます。
httpStatus イベントは、アップロードが失敗した場合にのみ送出されます。ファイルをダウンロードする際、Flash Player はブラウザを頼りにするので、このイベントはダウンロードエラーでは利用されません。HTTP エラーのためにダウンロードが失敗した場合は、I/O エラーとして通知されます。
type プロパティ (httpStatus イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
status | サーバーから返された HTTP ステータスコードです。 |
target | HTTP ステータスコードを受け取るネットワークオブジェクトです。 |
関連項目
| ioError | イベント |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
アップロードまたはダウンロードが失敗したときに送出されます。次のいずれかの理由により、ファイル転送に失敗することがあります。
url パラメータ (upload() メソッド) に渡された値に、無効なプロトコルが含まれている場合。有効なプロトコルは HTTP と HTTPS です。重要 : ブラウザ内で実行される、つまり、ブラウザプラグインまたは ActiveX コントロールを使用する Flash アプリケーションでのみ、認証用のユーザー名とパスワードをユーザーが入力できるダイアログボックスを表示できます。しかも、それはダウンロードの場合のみです。プラグインまたは ActiveX コントロールを使用するアップロードの場合、または、スタンドアローンまたは外部 Player を使用するアップロードまたはダウンロードの場合、ファイル転送は失敗します。
type プロパティ (ioError イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 入出力エラーが発生したネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
関連項目
| open | イベント |
flash.events.Event
flash.events.Event.OPEN
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
アップロード処理またはダウンロード処理が開始するときに送出されます。
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);
}
}
}関連項目
| progress | イベント |
flash.events.ProgressEvent
flash.events.ProgressEvent.PROGRESS
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | 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);
}
}
}関連項目
| securityError | イベント |
flash.events.SecurityErrorEvent
flash.events.SecurityErrorEvent.SECURITY_ERROR
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
FileReference.upload() または FileReference.download() メソッドの呼び出しによって、サーバーにファイルをアップロードするか、呼び出し元のセキュリティサンドボックスの外部にあるサーバーからファイルを取得しようとすると、送出されます。発生した特有のエラーを示す text プロパティの値は、通常 "securitySandboxError" です。呼び出し側の SWF ファイルが自分のドメインの外にある SWF ファイルにアクセスしようとして、アクセス権限がないと発生します。クロスドメインポリシーファイルを使用することで、このエラーに対処できます。
SecurityErrorEvent.SECURITY_ERROR 定数は、type プロパティ (securityError イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | セキュリティエラーを報告するネットワークオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
関連項目
| select | イベント |
flash.events.Event
flash.events.Event.SELECT
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
ユーザーがアップロードするファイルまたはダウンロードするファイルをファイル参照ダイアログボックスから選択したときに、送出されます。(このダイアログボックスは、FileReference.browse() メソッド、FileReferenceList.browse() メソッド、または FileReference.download() メソッドを呼び出したときに開かれます)。ユーザーがファイルを選択し、[OK] などをクリックして操作を確認すると、FileReference オブジェクトのプロパティに値が設定されます。
select イベントは、どのメソッドによって呼び出されたかに応じて、少し異なる動作を実行します。select イベントが browse() 呼び出しの後に 送出された場合、Flash Player は FileReference オブジェクトのすべてのプロパティを読み取ることができます。これは、ユーザーが選択したファイルが、ローカルファイルシステムに存在するためです。select イベントが download() 呼び出しの後に発生した場合、Flash Player は name プロパティのみを読み取ることができます。これは、select イベントが送出された時点では、ファイルがまだローカルファイルシステムにダウンロードされていないためです。ファイルがダウンロードされ、complete イベントが送出された時点で、Flash Player は FileReference オブジェクトの他のすべてのプロパティを読み取ることができます。
type プロパティ (select イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | アイテムが選択された FileReference オブジェクトです。 |
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
flash.events.DataEvent.UPLOAD_COMPLETE_DATA
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | 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:Event):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/flash/9.0_jp/ActionScriptLangRefV3/flash/net/FileReference.html