Загрузка нескольких файлов с помощью PHP / Javascript и без вспышки

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

Я провел некоторое исследование по этому поводу, и повсюду я смотрю, как это вспыхивает и вспыхивает.

Я действительно не хочу использовать флеш. Особенно с Flash 10, который отключает наиболее распространенный метод, позволяющий многоточечную загрузку.

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

Поэтому мне интересно, как это работает. Должен ли я предоставить всем полям ввода файлов одно и то же имя, поэтому я могу использовать 1 часть кода PHP для решения этой проблемы? Или есть ли какой-то способ для PHP определить, как много файлов были отключены, и просто поместить код для анализа файла внутри цикла?

Related of "Загрузка нескольких файлов с помощью PHP / Javascript и без вспышки"

Вот алгоритм:

Вы добавляете новые поля ввода файла в свою форму. Каждое из этих полей ДОЛЖНО иметь уникальное имя. Затем, на стороне сервера, вы просматриваете массив $ _FILES, просматривая, сколько файлов было загружено и обрабатывается.

Вы можете добавлять вложения «файл», но использовать имя что-то вроде «upload []»

<input type="file" name="upload[]"> 

Затем в $ _FILES ['upload'] у вас будет массив файлов, которые вы можете перебрать

 foreach ($_FILES['upload'] as $file) { echo $file['size']; } 

При использовании JavaScript для добавления новых полей для загрузки вы также можете обновить JavaScript в некотором «скрытом» поле ввода с количеством полей для загрузки в форме. Таким образом, как только вы нажмете «Отправить», это скрытое значение должно быть представлено, и будет тривиально разбирать массив $ _FILES для всех загруженных файлов.

Если у вас есть разумный максимальный предел количества файлов, вероятно, лучше включить это много полей для загрузки файлов в статическую форму, а затем использовать JavaScript, чтобы скрыть лишние, чем создавать их все динамически. Тогда форма может работать, когда JavaScript недоступен.

Сторона примечания: технически, отдельные формы загрузки файлов HTML – это уже несколько форм загрузки файлов. Согласно стандарту кодирования HTML-формы, вы должны выбрать несколько файлов в диалоговом окне «Обзор», и они будут представлены в виде многофайловой / смешанной структуры MIME.

Однако практически ничего не поддерживает. Старые версии Opera работают на стороне клиента (и, я думаю, древний тестовый браузер какого-то типа, возможно, Viola) и несколько компонентов для разбора текста на стороне сервера, но не встроенные PHP. В любом случае пользовательский интерфейс не очень удобен, поэтому вам не хватает многого.