PHP. Асинхронная массовая загрузка файлов на сайт
Нужна асинхронная загрузка файлов с компьютера пользователя на сайт.
Для чего применяется
Пользователи загружают на сервер массивы фотографий (иногда по 100 штук за раз) - нужна удобная форма для такой загрузки. Самое время загрузки не имеет значения, главное что бы пользователь быстро и удобно перетащил/выбрал файлы.
Требования:
1. Пользователь должен иметь возможность либо перетаскивать файлы на веб-страницу мышкой (со своего компьютера), а также по нажатию открывается форма поиска файлов на компьютере с возможность множественного выбора. (Если какой-то браузер не поддерживает один из способов - выводить только тот метод, который поддерживается.)
2. Сразу после перетаскивания файлы начинают по очереди загружаться (загрузка асинхронная, но по очереди). Файлы могут быть, к примеру, по 40 мегабайт каждый, и post_max_size = 40 мегабайт.
3. Файлы загружаются во временную папку (название всегда одинаковое, но не temp_dir) на сервере под временными именами (откуда потом другой скрипт их заберёт).
4. Пользователь видит прогресс загрузки (в любом виде - главное, что бы понять, как долго она ещё будет идти и когда загрузка завершена). После загрузки всех файлов (либо вывода сообщение о том, что что-то не загрузилось) активируется кнопка перехода к следующему шагу.
5. После нажатия на кнопку перехода к следующему шагу, на следующую страницу методом POST передаётся массив названий загруженных файлов (как оригинальное имя, так и реальное имя на сервере).
Примечание:
1. Если у вас есть какой-то скрипт, который не совсем подходит под указанные требования - возможна корректировка требований.
2. Будут загружаться не только фотографии, но и фалы других форматов.
Пожелания:
1. Идеально - скрипт похожий на загрузку на mail.ru или яндекс.почта.
2. Сейчас использую скрипт с www.plupload.com, но хочется что-то более красивое. Либо plupload, но "облагороженный" - предложения рассматриваются.