私は、Webサーバー上の.aspxページを呼び出すFlexアプリケーションを用意しています。このアプリケーションは、PDFまたはExcelファイルを作成します。今、私はファイルを呼び出すためにnavigateToURL()を使用しています。これは、出力ファイルが正常に構築されたときにうまく動作します。しかし、エラーやタイムアウトがある場合、Flashムービーでこれを知る方法はありません。.aspxファイルから返されたPDFファイルを開くか保存するようにユーザーに促す方法はありますか?
代わりにURLLoaderを使用しようとしています。そのため、HTTPステータスコードをリッスンして、ロードが完了したことを知ることができますが、URLLoaderはビットマップデータを返します。出力ファイル。これを行うためにとにかくありますか?ここで
は私のActionScriptコードの両方のバージョンです:FYI
private function buildFile():void
{
var variables:URLVariables = new URLVariables();
variables.rptName = "report1";
variables.rptFormat = "PDF";
var request:URLRequest = new URLRequest();
request.url = "/buildFile.aspx";
request.method = URLRequestMethod.POST;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS,
httpStatusHandler);
loader.load(request);
}
private function buildFile():void
{
var variables:URLVariables = new URLVariables();
variables.rptName = "report1";
variables.rptFormat = "PDF";
var request:URLRequest = new URLRequest();
request.url = "/buildFile.aspx";
request.method = URLRequestMethod.POST;
request.data = variables;
navigateToURL(request, "_self");
}
、ここでは現在、PDFやExcelファイルを出力コードのブロックです:
System.Web.HttpContext httpC;
httpC = System.Web.HttpContext.Current;
httpC.Response.Clear();
httpC.Response.ClearHeaders();
httpC.Response.Expires = 0;
switch (ReportFormat)
{
case "Excel": Response.ContentType = "application/vnd.ms-excel"; break;
case "PDF": Response.ContentType = "application/pdf"; ; break;
}
Response.AddHeader("Content-disposition", "attachment;filename=" + fileName);
BinaryWriter binaryWriter = new BinaryWriter(httpC.Response.OutputStream);
binaryWriter.Write(result);
私は.NET開発者に確認して、彼がどのようにレスポンスヘッダーを設定しているかを調べる必要があります。私は誰かがフレックスの終わりに私を助けることを望んでいた。 –
@エリック、なぜPDFファイルで適切なURLにユーザをリダイレクトしないのですか? –
「保存」または「開く」のオプションをユーザに与えるダイアログを表示させたい。 "_self"をターゲットとしてnavigateToURL()を使用すると、既存のコードが正常に動作します。しかし、進行状況や完了を追跡する方法はありません。そのため、私はURLLoader.load()を使用しようとしています。 –