要素で許可されている新しい multiple="multiple" 属性を使用しようとしています。これまでのところ、これは最近の Gecko および WebKit ブラウザーでサポートされています。私は Firefox 3.6 と Chrome 5.0 でテストしています。
問題なく使用でき、ファイルのリストを表示できます(これをガイダンスとして使用しました)。ただし、かなり苛立たしいことに、ユーザーがファイルを追加した後、このリストからファイルを削除することはできないようです。唯一の方法は、[参照...] ボタンをクリックして新しいファイル セットを選択することです。
これは<input>
、仕様に記載されているように、要素によって提供される FileList オブジェクトが読み取り専用であるためです (リンクできません - W3C の Web サイトで FileAPI TR を参照してください)。
もちろん、「削除された」アイテムのリストを保持し、とにかくすべてをアップロードしてから「削除された」アイテムを無視するなどの回避策があります。これは少し汚れており、多くのファイルが「削除」されると、アップロードが容認できないほど遅くなる可能性があります。
誰かが他の回避策を知っていますか、またはこれに対処するためのより良いアイデアを持っていますか? 目的は、「複数」属性を使用できるようにし、ユーザーがアップロード前にリストからファイルを削除できるようにすることです。