2012-03-06 7 views
0

サーバ側からGWTクライアントにバイト配列または文字列配列を受け取り、それをファイルとして開く方法はありますか? バイト配列はすでにメモリに格納されているため、サーバーのファイルに書き込んでURLをクライアントに戻す必要はありません。 ありがとうGWTメモリ内のバイト配列からファイルを開く

+0

「ファイルとして開く」ビットを明確にします。ファイル操作APIは明らかにGWTではサポートされていません。しかし、通常のRPC呼び出しでサーバーからデータを取得するのを止めるものはありません。 – Strelok

答えて

0

GWT JavaがJavascriptにコンパイルされています。

したがって、Javascriptクライアントでサーバファイルを「ファイル」として開くには、まずJavascriptベースのアプリケーションを作成してみてください。 JavaScriptがわからなくても - 少なくとも、思考実験を実行してください: - ブロッサーの制限は何ですか? - ブラウザの表記法でこのような制限があるのはなぜですか?

Javascriptアプリケーションではできないものもありますが、GWTアプリもそうではありません。

あなたが考えているのは、ファイルIO APIを使用してサーバー上のファイルにアクセスすることです。

  1. あなたはFile IOに慣れていて、GWT Javaに何度もやっていることをJavaでやりたいと思っています。視点。
  2. オペレーティングシステムにWebベースのインターフェイスを作成し、アプリケーションのための大きな計画を立てたいとします。

状況1の場合、あなたは幸いです。 非同期とシンクライアント/サーバー通信の遠隔性を尊重して視点を変更するだけで済みます。

しかし、登山しなければならないエベレスト山岳地帯で、GWTでファイルIOパターンを試し続けている場合は、大きなプロジェクトを準備する必要があります。私はあなたがそれらをエミュレートしなければならないので、 "ファイルIOパターン"ではなく "ファイルIOパターン"と言っています。明らかに、ブラウザのセキュリティ技術では、まだブラウザのシステム上でファイルを開くことはできません。そのため、GWTがその機能を提供することはできません。

第2に、ファイルIOはjava.ioレルムに属します。また、ブラウザのセキュリティではjava.ioのほとんどの機能が使用できません。 GWTのfile.io機能のセットがなければ、どのようにしてFile IOができますか?

あなたができることは、File IOの期待に沿ってスケールダウンし、File IOの機能の仕様を書き留めることです。同様に、オープン、クローズ、読み取りなど。次に、GWT Javaクラスをいくつか作成して、エミュレートされたファイルIOの小さなビットを実行できるようにします。

今私はGoogleの "GWT inputstream outputstream"に決めました。そこからいくつかのコードを借りて/盗むことができるいくつかのオープンソースプロジェクトがあります。クライアント/サーバファイルをエミュレートするための長い目標を達成するためのコードです。 。

しかし、あなたの助言は、機能の仕様をRESTサービスに変換することです。 RESTはGoogleドキュメントにアクセスする方法です。 GoogleのデータAPIを学習し、認証フレームワークを含めてそれらの仕組みを学びます。

関連する問題