1

ユーザーがファイルを入力し、ファイルの内容を GWT パネルに表示できる方法が必要です。コンテンツをサーバーに送信する必要はなく、ファイルをクライアント側に保持することをお勧めします。私は次のことを試しました:

  • ライブラリ lib-gwt-file を使用しました。Firefox では完全に動作し、Chrome ではほとんど動作しますが、Internet Explorer ではまったく動作しません。これらすべてのブラウザーをサポートする必要があります。ライブラリの作成者にメールを送信しましたが、返信がありません。

  • このようなメソッドを使用して、FileUpload オブジェクトと FormPanel を使用しました。ただし、私の組織では、サーバーと通信するためにヘッダーを設定する必要があるセキュリティ フィルターを使用しています。FormPanel にヘッダーを設定できないことを理解しています。

  • GWTUpload などの GWT 用の他のファイル アップロード ライブラリを調査しましたが、実際には必要な機能がありません。ファイルをサーバーにアップロードするつもりはありません。クライアント側のファイルの内容が必要なだけです。

私はアイデアがなく、この単純なタスクをどのように達成できるかわかりません。現在の障害を乗り越えるための他の方法や方法について誰か提案はありますか?
ありがとう。

4

2 に答える 2

2

私は今、自分の質問に完全に答えることができます。上記の Neeko は正しかったのですが、この使用例では lib-gwt-file が適切に機能していませんでした。そこで、そのライブラリのメーカーに連絡して問題を説明しました。彼は私が Chrome で経験していた問題を解決し、ライブラリが IE10 でうまく動作するようにしました。Neeko が言ったように、IE9 はサポートされていません。

IE10 では、URL の末尾に &mode=typeArrays を追加して、typedArrays のサポートを有効にする必要があります。これは IE のバグの回避策であり、常に必要とは限りません。

Chrome には Webkit のバグがあり、同じファイルを 2 回選択しても変更イベントがトリガーされなくなり、同じファイルを続けて 2 回アップロードできなくなりました。lib-gwt-file の次のバージョンでは、これに対する回避策があります。

Firefox はバージョン 0.3.2 で正常に動作します

したがって、他の誰かがこのライブラリを使用しようとしてこれらの問題を経験したことがある場合は、より適切に機能するはずです。lib-gwt-file の作成者である Lukas Laag は、これらの問題の解決に非常に役立ちました。

于 2012-11-26T15:09:10.607 に答える
1

これを実現するにはlib-gwt-file APIを使用するのが最善の方法です。GWT 用のHTML5 ファイル APIをカプセル化してローカル ファイル システムへのアクセスを可能にするからです。私の知る限り、他の方法でローカル ファイル システムにアクセスすることはできません。残念ながら、IE 9 以前は File API をサポートしていないため、lib-gwt-file は機能しません。File API はIE10まで IE に導入されませんでした。

編集: this SO answerによると、ActiveX を介して IE のローカル ファイル システムにアクセスできますが、制限があり、GWT で使用するには、JSNIを使用して GWT コードで JavaScript を手書きする必要があります。

于 2012-11-20T16:32:45.750 に答える