2011-01-04 6 views
1

バイト配列をとる.NET Webサービスがあります。バイト配列をGWTから作成するファイルアップロード入力

私は、FileUploadコントロールを使用してファイルを選択し、HTTPストリーム経由でWebサービスに送信するGWTクライアントを用意しました。

ファイルアップロードコントロールには、選択したファイルのファイルパスを取得する方法が含まれています。 どうすればそのファイルを取得し、それをバイト配列に変換できますか?

私はバイト配列が動作するかなり確実ではない、私のWebサービスにファイルを取得する方法について提案を開いてる...

答えて

1

ファイルをGWTで変換する場合は、ブラウザで意味します。 JavaScriptのみを使用してブラウザで行うことはできません。 FileUploadは、html入力タイプのファイルアップロードで、フォームを送信するときのようにファイルをサーバーに送信することしかできません。セキュリティ上の理由から、ブラウザはファイルシステムからファイルを読み取ることができません。 (手元には例はないが、Flashプラグインのようなプラグインを使用すると、動作させることができる)。

ウェブサービスにファイルコンテンツを送信する場合は、ウェブサービスに直接アップロードするか、別のサーバーに送信して変換し、そのサーバーから変換してWebサービスに送信するか、フラッシュ)プラグインを使用してください。

0

このリンクを多分役に立つよあなたがHow to convert a byte array to a string, and string to a byte array with GWT

String(byte [] bytes)コンストラクタとString.getBytes()メソッドは、GWT JREエミュレーションStringクラスでは実装されていません。

+0

リンクありがとうございます。しかし、これでは、ユーザーが選択したExcelファイルを取り出して文字列に変換する必要があるようです。 – tpow

0

これは完全にJavascriptではできませんが(まだ)、フラッシュまたは署名付きアプレットで行うことができます。個人的に私がやることは、ページ上のどこかにあるが可視ではない署名付きアプレットを作成することです。ユーザーがサーバーに送信するファイルを選択すると、ファイルの場所が入力から取得され、アプレットに送信されます。アプレットはファイルをロードし、データをJavascriptにバイト配列として返します。 Webサービスを変更して複数部分のフォームデータを受け入れることができれば、フォームの一部としてファイルアップロードフィールドを含めてフォームを送信するだけです。 HTML5ではデモが可能で、デモはhereと表示されるので、FF3.6やChrome 6などの半HTML5準拠のブラウザを使用していることをユーザーが指定できる場合は、運。

関連する問題