公式:http://code.google.com/p/gwtupload/ gwtuploadはApache2.0ライセンスのオープンソースのGWTを使ったファイルアップロードライブラリーです。 Apache Software Foundationのcommons-fileuploadがベースになっています。 普通のServletだけでなく、GAEにも対応しつつあります。 転送状況をパーセントで表示できたりするのが特徴です。 こういう人にお薦めファイルアップロード時の転送状況を表示させたい画像は一つのファイルが選択できるSingleUploaderでの転送状況、画面中央に進行状況が表示されるこの機能をGWTで実装するのは結構面倒です。 複数のファイルをキューで処理したい画像は複数のファイルを追加できるMultiUploaderでの転送状況完了したものはDoneとなり、アップロード予定の物はQueuedとなる。 アップロード中にもファイルを選択で追加可能 アップロード時にキャンセル機能を加えたいアップロード中は左のXアイコンでいつでもキャンセル可能になる手軽に非同期通信でファイルを転送したい時間がかかり、また失敗の可能性があるファイル転送を非同期で別にするのはWebアプリが使いやすくなります。これをGWTで手軽に実現するにはgwtuploadはとてもいいライブラリーです。 ただ逆にアップロードに他のフィールドを含ませるのは面倒 現在未対応複数ファイルをドロップで追加 issue 34で対応予定Google App Engine対応について0.6.1を試してみましたが、メムキャッシュに保存するAppEngineUploadActionは動いたがBlobstoreUploadActionはエラーが出ました。java.lang.NullPointerException at com.google.appengine.api.blobstore.dev.UploadBlobServlet.handleUpload(UploadBlobServlet.java:380) at com.google.appengine.api.blobstore.dev.UploadBlobServlet.access$000(UploadBlobServlet.java:72) at com.google.appengine.api.blobstore.dev.UploadBlobServlet$1.run(UploadBlobServlet.java:101) ただ、0.6.2-snapshotやsvnの方では動くらしい by Google Group 開発メモ独自の保存システム作る場合、commons-fileuploadのフレームワークの上に、このgwtuploadのフレームワークが出来ていますのでUploadActionを拡張しつつ、FileItemFactoryを実装する必要があります。付属のソースコードが参考になるでしょう。 エラーメッセージはUploadServlet.classのgetUploadStatusにてハードコーディングされています。 エラーメッセージをダイアログに出すのは、BaseUploadStatus.classのsetErrorの所です。 なぜファイルにc:\fakepath が付くのは不明・commons-fileuploadの仕組み?SingleUploaderの引数 FileInputTypeの違いによる表示の違い上から、ファイル選択後のデフォルト(BROWSER_INPUT)・ANCHOR・LABEL・BUTTONANCHORはファイル選択後もテキストは変わりません。 BUTTONは、たまにレイアウトが変になることがあります。 LABELは無駄なfakepathとか付きます。 |
GWT >