2012-03-20 10 views
2

私は、navigateToUrl(URL)メソッドを使用してサーバーからファイルを開くことができますので、flexを使用してpdf/excel/docを開きます。しかし、私の問題は、それらのファイルがサーバーに暗号化されているので、ByteArrayとしてダウンロードされたFlex起動pdf/docファイル

ByteLoader = new URLLoader(); 
ByteLoader.dataFormat = URLLoaderDataFormat.BINARY; 
ByteLoader.load(new URLRequest (constructedURL)); 

を次のように私はそれらを操作することができ、復号化されたファイルを取得することができるように私は、ファイルをロードします。今私の質問は、私のデータはすでにサーバーからダウンロードされているので、私は持っていたバイナリコンテンツを使ってファイル(pdf/doc/excel)をどのように起動するのでしょうか?

私がnavigateToURL()で行ったようにファイルを起動できますか?

+0

AIRアプリケーションかブラウザの統合swfですか? –

+0

こんにちはYordan、それはブラウザベースのAIRアプリケーションではありません。おかげで、マニ – user1281276

答えて

0

私は直接答えはありませんが、これは何回もそうですが、FileReference save method(これはFlash Player 10以上と思われます)を使用できる1つのフォールバックソリューションを提供できます。ドキュメンテーションに基づいて、ブラウズメソッドやダウンロードメソッドによってのみ名前が設定されますが、名前を使用できない可能性があります(さらに、これはファイルの名前に過ぎないと思います)しかし、それは保存された完全なネイティブパスを含まないが、これはおそらく探検する価値があるだろう)。何らかの形でネイティブパスを取得できた場合、ファイルが保存されていますが、ローカルファイルを開くためにnavigateToURL(新しいURLRequest( "file:///"))を使用すると想像します。私はすでに私のハードドライブに保存されていたし、それが働いていたファイルと、この最後の部分:

 var fr:FileReference = new FileReference(); 
     fr.save("something worth saving", "somefile.txt"); 
     fr.addEventListener(Event.SELECT, function(event:Event):void 
     { 
      trace("something selected: " + event.target.name); 
     }); 

     navigateToURL(new URLRequest("file:///C:/tmp0001-0160.avi")); 

が、これは実際に動作させるためにのように見える基本的にかかわらず、あなたは、ユーザーがどこにあるかご存知の保証を持っている必要があるだろうファイルを保存しようとすると、誰かがより良いソリューションを提供できない限り、ファイルを保存して開くことができます。

関連する問題