Как я могу узнать количество загруженных файлов с помощью PHP? - PullRequest
1 голос
/ 06 декабря 2010

У меня есть форма с несколькими

input type="file"

тегами.Как узнать на стороне сервера количество файлов, загруженных пользователем.Он может загрузить 3 файла или может быть 5 файлов, 1 или даже ничего.Мне нужно знать, сколько файлов загружено пользователем.

Ответы [ 4 ]

8 голосов
/ 06 декабря 2010

Вы можете использовать массив count или sizeof on $_FILES, который содержит информацию о загруженном файле:

 echo count($_FILES);

Обновление (на основе комментариев):

Вы можете сделать это:

$counter = 0;
foreach($_FILES as $value){
  if (strlen($value['name'])){
    $counter++;
  }
}

echo $counter; // get files count
4 голосов
/ 06 декабря 2010

Если у вас есть входные теги загрузки с такими именами, как file1, file2, тогда

if($_FILES['file1']['size'] > 0)
    echo "User uploaded some file for the input named file1"

Теперь для многих файлов (смотря на ваш вывод), запустите цикл foreach, как этот: -

$cnt=0;
foreach($_FILES as $eachFile)
{
     if($eachFile['size'] > 0)
        $cnt++;
}
echo $cnt." files uploaded";

Я не уверен, почему аналогичный ответ в Как узнать количество загруженных файлов с помощью PHP? получил отрицательный ответ?Для «0»?

2 голосов
/ 06 декабря 2010

$_FILES - это глобальный массив файлов, в котором хранятся загруженные файлы.

1 голос
/ 28 сентября 2015

Форма:

<form enctype="multipart/form-data" ...>
<input type="file" name="image[]" multiple>

Сценарий:

$c = sizeof($_FILES['image']['name']);
...