Завантаження кількох файлів
Завантаження кількох файлів можна реалізувати, використовуючи, наприклад, різні значення name
для тегаinput
Також можна одночасно завантажувати кілька файлів та автоматично отримати їх у вигляді масиву. Для реалізації такої можливості використовуйте той же синтаксис масиву HTML-формі, що і для множинних полів select і checkbox:
Приклад #1 Завантаження кількох файлів
Файли:
У разі, якщо така форма була відправлена, масиви $_FILES['userfile'] $_FILES['userfile']['name'], и$_FILES['userfile']['size'] будуть ініціалізовані.
Наприклад, припустимо, що були завантажені файли /home/test/review.md та /home/test/xwp.out. У такому разі змінна $_FILES['userfile']['name'][0]будет установлена значением review.md, а переменная$_FILES['userfile']['name'][1] - Значення xwp.out. Аналогічно, змінна $_FILES['userfile']['size'][0] міститиме розмір файлу review.md і так далі.
Змінні $_FILES['userfile']['name'][0] $_FILES['userfile']['tmp_name'][0] $_FILES['userfile']['size'][0] і $_FILES['userfile']['type'][0] також будуть ініціалізовані.
Увага
Конфігураційна директива max_file_uploads регулює ліміт одночасно завантажуваних файлів протягом одного запиту. Вам необхідно буде переконатися, що ваша форма не намагається завантажити файли більше цього ліміту за один запит.
Приклад #2 Завантаження всього каталогу
У полях завантаження HTML-файлу можна завантажити весь каталог за допомогою атрибуту webkitdirectory
. Він підтримується більшістю сучасних браузерів.
За допомогою інформації full_path
можна зберегти відносні шляхи або відновити той самий каталог на сервері.
Завантаження каталогу:
Увага
Атрибутwebkitdirectory
нестандартний і не входить до стандартного постачання. Не використовуйте його на робочих сайтах: він не працює у всіх користувачів. Між реалізаціями може бути велика несумісність, також поведінка може змінитися у майбутньому.
PHP аналізує тільки інформацію про відносний шлях, відправлену браузером/користувачем і передає цю інформацію в масив $_FILES. Немає жодної гарантії, що значення в масиві full_path
містять реальну структуру каталогів і програма PHP не повинна довіряти цій інформації.