AJAXファイルアップローダ『Uber-Uploader』
フォームのファイルアップロードを処理している最中、その進捗状況をAjaxな感じで表示することができるものです。
Uber-Uploader
http://uber-uploader.sourceforge.net/
デモはこちら。何が出来るかはここを見れば一発で分かります。
http://www.webdice.org/uber_uploader/
中身を見てみると、サーバサイドはPHPとPerlのセットになっています。
PHPのファイルアップロードは、ファイルが一度メモリに展開されてしまうため、消費メモリが気になるところですが、このUber-Uploaderはアップロード処理をPerlCGIで処理しているようです。
一時ファイルにアーカイブしながらアップロードを処理しつつ、アップロード済みのファイルサイズをファイルに書き出すような処理に見えます。
進捗状況は、JavaScriptからPHPを叩いて取得します。
ソース中にはカスタマイズポイントも併記されています(当然英語ですが)
前に書いたPHP拡張のAPCも試しましたが、Uber-Uploaderの方が精度が高く安定しています。