2

JSFでファイルをアップロードしたい。一時停止後にアップロードを再開できるようにしたい (自発的かどうかに関係なく)。サイズは約 500Mb になります。

きれいな FileUpload-Tag を持つ PrimeFaces を使用していますが、アップロードを一時停止/再開できません。

私はこれについていくつかの研究をしました。最も一般的な答えは「FTP クライアントを使用する」です。その他は、Java アプレットまたは Flash でした。

現在の Firefox/Chrome および IE8 で動作するはずです。

4

1 に答える 1

2

実際、HTML<input type="file">要素を介してファイルのアップロードを再開することはできません。つまり、multipart/form-dataそれをサポートするエンコーディングには何もありません。さらに、それをサポートする標準形式のエンコーディング仕様はありません。基本的に、カスタムの HTTP リクエスト形式を発明する必要があります。

JFileChooserJava 用語では、Swingを使用してファイルを選択しURLConnection、それを HTTP 経由でサーバーに送信するためのアプレットまたは webstart アプリケーションを自作するのが最善の策です。Servletサーバー側では、カスタム リクエスト形式を理解し、それに応じて部分アップロードを処理するカスタムが必要です。

このすべてが可能なサードパーティのアプレットがあります: JumpLoader。そのホームページは残念ながら現在ダウンしています (ただし、Google キャッシュを試すことはできます)。要するに、サーブレットが部分を接着できるように、アップロード リクエストとともに特定の HTTP リクエスト パラメータを送信しmultipart/form-data、部分アップロードかどうか、また部分アップロードの場合はどのインデックスから開始するかをサーバー側に伝えます。

次に、これらすべてを JSF と統合するには、アプレットがセッション ID を URL パス フラグメントとして渡し、サーブレットが JSF アプリケーションと同じ HTTP セッションを共有するようにするのが最善の方法です。このようにして、アップロード サーブレットはセッション スコープの JSF マネージド Bean にアクセスでき、JSF アプリケーションは HTTP セッションでいくつかのサーブレット固有の変数をポーリングできます。

于 2012-12-13T13:03:30.840 に答える