Подтвердить что ты не робот

Подсчитайте и ограничьте количество загруженных файлов (вход в файл HTML)

У меня есть эта базовая, хорошо известная форма для загрузки нескольких файлов. Что-то вроде этого...

<input type="file" multiple="multiple" name="something[]" />

Есть ли способ (предпочтительный вариант с жесткой кодировкой), чтобы ограничить количество файлов, которые пользователь может выбрать? По ограничению я означает строго заблокированное, а не только предупреждение, если число превышено.

Спасибо заранее.:)

4b9b3361

Ответ 1

Вы можете реализовать решение javascript для проверки количества выбранных файлов, которые затем можно использовать, чтобы запретить загрузку на сервер. На самом деле есть только решения для этой проблемы на стороне клиента, так как в любом случае пользователь не может публиковать эти файлы на вашем php script. Вы можете указать максимальный максимальный размер загружаемого файла, но он не зависит от количества загружаемых файлов.

Лучше всего выполнить некоторую проверку javascript, указав разумный максимальный размер загрузки для вашего HTTP-сервера (или на PHP), а затем проигнорируйте любой загруженный файл, если он превысит ваш максимальный счет.

Прочитайте об API-интерфейсе HTML5 здесь, чтобы ограничить количество выбранных файлов: http://dev.w3.org/2006/webapi/FileAPI/

Вот документы php.ini, которые объясняют, как сделать ограничение размера при загрузке: http://php.net/manual/en/ini.core.php

Как было предложено в комментариях, проверьте: http://php.net/manual/en/ini.core.php#ini.max-file-uploads

Ответ 2

все мы знаем, что в массиве first element is stored in 0 th index, 2nd in 1st index......nth in (n-1)th index

теперь вы не можете взять count($_FILES['something']), который всегда будет возвращать 5, поскольку в массиве есть 5 ключей

теперь вопрос заключается в том, что содержит $_FILES['something']['name'][0]? = > имя загруженного первого файла

поэтому проверьте, как

if(empty($_FILES['something']['name'][0]))
{
     //checking whether a single file uploaded or not
     //if enters here means no file uploaded
     //so if you want you may put a check/validation here to make file
     //upload a must in your website
}
if(isset($_FILES['something']['name'][5]))
{
     //checking whether 6 files uploaded or not
     //so here you can put a check/validation to restrict user from
     //uploading more than 5 files
}

Ответ 4

Некоторые плагины, похоже, помогают в этом, например: Uploadify (flash based). Однако я не использовал этого или другого достаточно, чтобы узнать, ограничивают ли они ограничение загрузки.

Дополнительная информация о Загрузка нескольких загрузок.