Загрузка нескольких файлов одновременно на PHP и JavaScript без Flash

Создаю веб-страницу для одновременной загрузки множества файлов. Планирую ограничить типы файлов популярными форматами изображений - JPG, JPEG, PNG и GIF.

Изучал эту тему и везде натыкаюсь на решения с Flash. Не хочу использовать Flash, особенно после выхода Flash 10, который заблокировал самые распространенные методы множественной загрузки.

Хочу реализовать систему динамического создания полей для выбора файлов. Каждое поле будет иметь кнопку обзора, а внизу формы разместится общая кнопка загрузки. Создание новых полей через JavaScript не проблема.

Вопрос в том, как это правильно организовать на серверной стороне. Нужно ли давать всем полям input одинаковое имя, чтобы обработать их одним блоком PHP кода? Или есть способ автоматически определить количество отправленных файлов и обработать их в цикле?

// Примерно такой код имею в виду
foreach($_FILES['uploaded_images']['name'] as $index => $filename) {
    $temp_path = $_FILES['uploaded_images']['tmp_name'][$index];
    $file_size = $_FILES['uploaded_images']['size'][$index];
    // обработка каждого файла
}

Да, всё верно делаешь. Главное - атрибут multiple не забыть добавить к инпуту, если хочешь чтобы пользователь мог сразу несколько файлов выбрать из одного диалога. А если через JS динамически поля создаешь, то да - имена с [] и потом в цикле обрабатывай. Еще совет - сразу ограничения на размер файлов поставь через MAX_FILE_SIZE в форме и в php.ini проверь лимиты.

Твой подход с массивом правильный! Просто добавь [] к имени поля - name="uploaded_images[]". Тогда $_FILES автоматически создаст массивы для всех свойств. Только не забудь проверить $_FILES['uploaded_images']['error'][$index] для каждого файла, а то можешь пропустить ошибки загрузки. Как планируешь показывать прогресс загрузки пользователю?