mabots' blog

知のレバレッジを最大化せよ (旧はてなダイアリーから移転しました。)

複数ファイルをまとめてアップロードしてくれるswfupload

標準的なブラウザのinputタグでは単一ファイルしかアップロードできないのですが、swfをもちいると、複数選択(ドラッグアンドドロップやCTRL, SHIFTキー押し)ができるようになります。

利用する場合は、サーバ側では何回もpostされているようにみえるので、一連のシーケンスが妥当かどうかを判定するロジックを組み込みたいところですね。

http://swfupload.org/

特徴

  • ブラウザ上で複数選択できるファイル選択ダイアログを表示
  • AJAXによるページリロードを伴わないアップロードプロセス
  • アップロードプロセスの表示
  • サポートしていないブラウザに対しての表示が可能
  • 他のJSライブラリと名前空間が重複しない(jQuery, Prototype等)


フロー

  1. 初期化と同時にhiddenに指定されたflashを呼び出します。
  2. アップロード可能になったイベントを発行します
  3. ユーザがアップロードボタンをクリックするとファイル選択ダイアログが表示
  4. ファイルが選択されるたびにイベントを発行。swfを設置したページでは、アップロードされたファイルに関する情報が表示できる
  5. アップロード自体は自動的に開始されるか、もしくは、アップロードボタン押下時にスタートするように設定できる
  6. アップロードが進行中に進行状況やエラー、完了表示をステータスとして表示
  7. サーバ側からみると、一度に一回ずつ通常のpostをうけているようにみえる。このためサーバ側の設定はとくに変更しなくてよい
  8. アップロードが完了してもページはリロードされず、完了した旨が表示される