Я бы определенно остановился на новом атрибуте «множественного» HTML5:
<input type="file" name="upload[]" multiple="multiple" />
Единственная жизнеспособная альтернатива - плагины FLASH, такие как swfupload.
Однако - существует несколько проблем с использованием FLASH для загрузки, основным из которых будет ошибка cookie:
Плагины FLASH неправильно отправляют файлы cookie.Каждый браузер имеет свое собственное хранилище файлов cookie. FLASH всегда отправляет файлы cookie из IE, даже если вы используете, например, Google Chrome.- в результате вы теряете куки и сеансы.Существует обходной путь - но он требует, чтобы вы отправляли идентификатор сеанса в виде параметров GET или POST, что, в свою очередь, делает ваш сайт уязвимым для фиксации сеанса.