私は自分のサーバー上のファイル(pdf/excel/ppt)をByteArrayに変換する方法を知りました。私がこれをやりたいのは、ダイアログを開いてユーザーを保存することです。コンテンツタイプをオクテットストリームに設定する必要があります。ダイアログはうまくnavigateToURL()で表示されますが、pdfではユーザーのローカルブラウザの設定です。 URLRequestの場合、データをByteArrayとして設定する必要があります。FlexでファイルをByteArrayに変換するにはどうすればよいですか?
1
A
答えて
5
あなたは、これは動作するはずのFlash Player 10をターゲットにしている提供:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="loadFile()">
<mx:Script>
<![CDATA[
private var loadedFile:ByteArray;
private function loadFile():void
{
var request:URLRequest = new URLRequest("http://test.enunciato.org/sample.pdf");
var urlLoader:URLLoader = new URLLoader(request);
urlLoader.addEventListener(Event.COMPLETE, onURLLoaderComplete);
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.load(request);
}
private function onURLLoaderComplete(event:Event):void
{
loadedFile = event.target.data;
}
private function saveLoadedFile():void
{
var file:FileReference = new FileReference();
file.save(loadedFile, "SampleDoc.PDF");
}
]]>
</mx:Script>
<mx:Button label="Save Image" horizontalCenter="0" verticalCenter="0" click="saveLoadedFile()" />
</mx:Application>
は、あなたが最初のファイルをロードすると仮定 - この例では、ロード操作がのcreationCompleteで発生し、バイトがでオフに格納されますloadedFile - ユーザーがイメージの保存をクリックすると、バイトが保存され、保存準備が整う必要があります。サンプルの動作をテストし、検証しました。それが役に立てば幸い!
0
私はあなたがバイト配列フェッチするために、このような何かを行うことができると思う:
private var fileBytes:ByteArray = null;
private static function loadByteArray(url:String):void {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
function(e:Event):void {
fileBytes = e.currentTarget.bytes;
});
loader.load(new URLRequest(encodeURI(url)));
}
// static initializer
{ loadByteArray("my url here"); }
編集を:私はdidnの」私はここにあるコードを使用しようとしています上記の機能をテストします。バイトを直接ロードする場合は、Christian Nunciatoの答えを使用することをお勧めします。
しかし、3ウェイトリップ(ファイルはサーバーから来て、サーバーに戻してから最後に戻ってきます)とは対照的に、サーバーから直接ファイルを取得するように思えますクライアントに送信する)。その場合、コンテンツタイプとコンテンツの処理をサーバー上の添付ファイルに設定することができます(例:pdfの場合、コンテンツタイプを "application/pdf"に設定し、 "Content-Disposition:attachment; filename = myFileName" pdf "をあなたの応答ヘッダーに追加する)。
関連する問題
- 1. ByteArrayをImageMetaData()からBitmapに変換するにはどうすればよいですか?
- 2. FLEX/BISON - ユーザー入力を小文字に変換するにはどうすればよいですか?
- 3. api httpresponse bytearrayをファイルに変換する
- 4. Flexでバリデータメッセージをローカライズするにはどうすればよいですか?
- 5. ベストプラクティス:Flexでレイアウトをコーディングするにはどうすればよいですか?
- 6. PythonでJSONファイルをCSVファイルに変換するにはどうすればよいですか?
- 7. .vpファイルを.xmlまたは.apkファイルに変換するにはどうすればよいですか?
- 8. Lucene.Net:MultiFiledQueryParserをBooleanQueryに変換するにはどうすればよいですか?
- 9. ハッシュタグテキストをハッシュタグハイパーリンクに変換するにはどうすればよいですか?
- 10. CodeVariableDeclarationStatementをCodeAssignmentStatementに変換するにはどうすればよいですか?
- 11. intをNSStringに変換するにはどうすればよいですか?
- 12. wchar_t *をwstringに変換するにはどうすればよいですか?
- 13. TDateTimeをFILETIMEに変換するにはどうすればよいですか?
- 14. StreamWriterをストリームに変換するにはどうすればよいですか?
- 15. string []をArrayListに変換するにはどうすればよいですか?
- 16. SqlXmlをXmlTextに変換するにはどうすればよいですか?
- 17. byte []をBitmapに変換するにはどうすればよいですか?
- 18. キャンバスコンテンツをイメージに変換するにはどうすればよいですか?
- 19. IntPtrをストリームに変換するにはどうすればよいですか?
- 20. オーディオをテキストに変換するにはどうすればよいですか?
- 21. char *をdouble *に変換するにはどうすればよいですか?
- 22. wavrecordをaudiorecorderに変換するにはどうすればよいですか?
- 23. バイトをmbに変換するにはどうすればよいですか?
- 24. SYS_GUID()をvarcharに変換するにはどうすればよいですか?
- 25. StringReaderをStringに変換するにはどうすればよいですか?
- 26. NSStringをNSDateに変換するにはどうすればよいですか?
- 27. java.util.Dateをorg.joda.time.DateTimeに変換するにはどうすればよいですか?
- 28. ベクトルをスカラーに変換するにはどうすればよいですか?
- 29. completablefutureをRxjavaに変換するにはどうすればよいですか?
- 30. URLをイメージに変換するにはどうすればよいですか?