Webアプリケーションに取り組んでいます。ユーザーがHTTPプロトコルでファイルをアップロードできる場所が1つあります。従来のHTMLファイルアップロードコントロールとJavaアプレットによるファイルのアップロードを選択できます。
一度に1つのファイルしか選択できないため、従来のHTMLファイルのアップロードは素晴らしいものではありません。実際のアップロード中に進行状況を表示することは非常に困難です(最後に、タイマーを使用して、 AJAX呼び出しを介して)サーバー。利点:常に機能します。
Javaアプレットを使用すると、さらに多くのことができます。一度に複数のファイルを選択し(フォルダも含む)、ファイルを圧縮し、実際の進行状況バーを取得し、アプレットにファイルをドラッグアンドドロップします。等...
しかし、いくつかの欠点があります:
UrlConnection
クラスでHTTPSを使用している場合はバグがあるため、Apacheの一般的なHTTPクライアントを使用して実際のHTTPアップロードを実行します。パッケージが非常に大きく、ダウンロードが遅くなります.jarファイルの私はこのJava=アプレットをしばらくの間維持していますが、今ではすべての欠点にうんざりしていて、これらのファイルをアップロードするための完全に新しいコンポーネントを作成/購入することを検討しています。
質問
次の要件がある場合:
どのテクノロジー/コンポーネントを使用しますか?
編集:
OKこれは私の考えです
私はswfuploadを使用していくつかのテストを行い、Javaに関する以前の経験があります。私の結論は、次のとおりですどのテクノロジーを使用しても、ブラウザーでアップロードを実行するための完璧なソリューションはありません:常に終了します巨大なファイルをアップロードするとき、プロキシを通過するとき、sslを使用するときのバグなど...
しかし:
すべての回答をありがとう!
最近、Silverlightに何かを実装しました。
基本的にHttpWebRequestを使用して、データのチャンクをGenericHandlerに送信します。
最初の投稿では、4KBのデータが送信されます。 2番目のチャンクでは、別の4Kチャンクを送信します。
2番目のチャンクが受信されると、最初のチャンクと2番目のチャンクの間の往復を計算します。これで、3番目のチャンクが送信されると速度が上がることがわかります。
この方法を使用すると、任意のサイズのファイルをアップロードでき、再開できます。
この情報に沿って送信する各投稿:
[パラメータ] [ファイルデータ]
ここで、パラメーターには以下が含まれます。[チャンク#] [ファイル名] [セッションID]
各チャンクを受信した後、より大きなチャンクを送信できるように、応答にかかった速さをSilverlightに返します。
コードなしで説明を書くのは難しいですが、それが基本的に私がやった方法です。
ある時点で、これをどのように行ったかについて簡単にまとめます。
サイズが2GBのファイルでこれを使用したことはありませんが、 YUI File Uploader は以前のプロジェクトではかなりうまく機能しました。この jQuery Plugin にも興味があるかもしれません。
とは言っても、Javaアプレットが最適です。移植性やUIの問題が予想よりも少なくなり、ドラッグ/ドロップがうまく機能するようになります。記録のために、Box.netは、マルチファイルのクイックアップロードにJavaアプレットを使用します。
ニースの複数ファイルのアップロード機能を備えた無料のフラッシュコンポーネントがいくつかあります。彼らは、サーバー側のPHP(または何でも)レシーバーでActionScripts FileReferenceクラスを使用します。FP10の起動で最近壊れたものもありますが、確かに swfupload 動作します:)
お役に立てれば!
これらの2つのJupload http://jupload.sourceforge.net/ とjumploader http://jumploader.com/ はどうですか?
どちらもJavaアプレットですが、どちらも本当に使いやすく、実装も簡単です。
google gears はどうですか?
Daveがすでに指摘したように、HTTPフォームを使用して複数のファイルをアップロードすることもできますが、HTTPとJavascriptが提供するもの以外のものを使用することに専念している場合は、Flashを強く検討します。 MultiPowUpload などの既存のソリューションもいくつかあり、探している機能の多くを提供します。また、Flashクライアントを使用すると、JavaScriptからAJAXを呼び出すよりも簡単に進捗情報を取得できます。柔軟性が少し高いためです。
Apache Commons FileUploadパッケージを確認できます。複数のファイルをアップロードしたり、アップロードの進行状況を監視したりできます。あなたはここでより多くの情報を見つけることができます:
http://commons.Apache.org/fileupload/
http://commons.Apache.org/fileupload/using.html
幸運を
Javaでのファイルアップロードの最も簡単な方法はGOJFileUpload.jarライブラリです
Gojfileuploadライブラリのチュートリアルは次のとおりです。
彼らは二つの方法を与える
彼らはあなたのHashMapをあなたの指定された宛先フォルダにアップロードした後にアップロードしたすべてのファイル名を返します。
複数ファイルのアップロードを可能にするHTTP/HTTPSアップロードコントロールがあります。 ここ は、Telerikからのものです。最新バージョンは、機能要件のすべてではないにしても、ほとんどを備えているようです。