download (FileReference.download メソッド)

public download(url: String , [defaultFileName: String ]) : Boolean

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

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

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

ファイルが正常にダウンロードされると、FileReference オブジェクトのプロパティにローカルファイルのプロパティが設定され、onComplete リスナーが呼び出されます。

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

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

POST パラメータをサーバーに送信するには、FileReference.postData の値に任意のパラメータを設定します。また、解析するサーバースクリプトに関して、URL にパラメータを付加することにより、download() 呼び出しで GET パラメータをサーバーに送ることもできます。

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

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

詳細については、次の参照先を参照してください。

対応バージョン : ActionScript 1.0、Flash Player 8

パラメータ

url:String - ローカルコンピュータにダウンロードするファイルの URL。解析するサーバースクリプトに関して、URL にパラメータを付加することにより、download() 呼び出で GET パラメータをサーバーに送ることができます。(たとえば http://www.myserver.com/picture.jpg?userID=jdoe)

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

defaultFileName:String (オプション) - ダウンロードするファイルとしてダイアログボックスに表示するデフォルトファイル名です。このストリングに、/ \ : * ? という文字を含めることはできません。" < > | %

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

戻り値

Boolean - ユーザーがファイルを選択できるダイアログボックスが表示される場合は true。ダイアログボックスが表示されない場合、このメソッドは false を返します。ダイアログボックスを表示できない原因は次のとおりです。

次の例では、download メソッドを使ってファイルのダウンロードを実行します。すべてのイベントについてリスナーが存在します。

import flash.net.FileReference;

var listener:Object = new Object();

listener.onSelect = function(file:FileReference):Void {
    trace("onSelect: " + file.name);
}

listener.onCancel = function(file:FileReference):Void {
    trace("onCancel");
}

listener.onOpen = function(file:FileReference):Void {
    trace("onOpen: " + file.name);
}

listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
    trace("onProgress with bytesLoaded: " + bytesLoaded + " bytesTotal: " + bytesTotal);
}

listener.onComplete = function(file:FileReference):Void {
    trace("onComplete: " + file.name);
}

listener.onIOError = function(file:FileReference):Void {
    trace("onIOError: " + file.name);
}

var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
var url:String = "http://www.adobe.com/platform/whitepapers/platform_overview.pdf";
if(!fileRef.download(url, "FlashPlatform.pdf")) {
    trace("dialog box failed to open.");
}

関連項目

browse (FileReference.browse メソッド), browse (FileReferenceList.browse メソッド), upload (FileReference.upload メソッド)


 

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

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001662.html