シンプルなHTMLページからファイルのアップロードを受け取り、そのファイルで何かを行い、操作したファイルをユーザーに返す単純なJavaサーブレットを作成したいと思います。サーブレットでファイルをアップロードしてダウンロードする
ファイルアップロードイベントは、サーバー側のサーブレットのdoPostメソッドによって処理されます。要件は、ファイルをアップロードしてサーバー側で処理した直後に[名前を付けて保存...]ウィンドウが表示され、生成されたファイルをユーザーのコンピュータに保存できることです。
ファイルのアップロードはdoPostによって処理され、ファイルのダウンロードはサーブレットのdoGetメソッドによって処理されます。これらの2つの出来事を何とか結びつけることは可能ですか?
ファイルアップロードイベントの応答としてバイトコンテンツを受信できますか?私はajax投稿を使ってファイルをアップロードし、ブラウザにコンテンツを送り返すことができ、クライアント側でこのメッセージを表示することができます。
ポストリクエストのレスポンスとしてバイナリコンテンツを受け取り、受け取ったバイトをファイルに保存するための "save as ..."ウィンドウを強制的にポップアップさせる巧妙なJavaスクリプトコードを書くことは可能ですか? ?
別の解決策は、新たに生成されたコンテンツは、サーバー上の一時ディレクトリ
- ファイルアップロード可能性があり
- クライアント(Javaスクリプト)は、生成されたファイルのIDを受信し、すぐに新しいGET要求をファイルダウンロードサーブレットに送信します。
- ファイルダウンロードサーブレットはファイルのID /パスを受け取り、tempフォルダからそれを読み取り、クライアントのWebブラウザにバクトを送信します。
このシナリオのベストプラクティスは何ですか?
* "どうにかこれらの2つのイベントを結びつけることはできますか?"単にそのdoGet()メソッドを呼び出すURLにリダイレクトを送信しますか?アドバイスのために – BalusC
Thx。私はwindow.location.href = dataを追加しました。 ajax POSTコールバック成功メソッドと成功:function(msg) – zappee