Roman Pushkin
Roman Pushkin

Reputation: 6079

How can I know a number of uploaded files with PHP?

I have a form with several

input type="file"

tags. How can I know on the server side amount of files uploaded by the user. He can upload 3 files, or may be 5 files, 1 or even nothing. I need to know how much files user have uploaded.

Upvotes: 1

Views: 8321

Answers (4)

RusAlex
RusAlex

Reputation: 8575

$_FILES is a global array of files which stores uploaded files.

Upvotes: 2

Leandro Parice
Leandro Parice

Reputation: 1096

Form:

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

Script:

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

Upvotes: 1

Sandeepan Nath
Sandeepan Nath

Reputation: 10284

If you are having input upload tags with name like file1, file2 then

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

Now for many files (looking at the output you are having), run a foreach loop like this:-

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

I am not sure why the similar answer in How can I know a number of uploaded files with PHP? got downvoted? For the '0' ?

Upvotes: 4

Sarfraz
Sarfraz

Reputation: 382696

You can use the count or sizeof on $_FILES array that contains uploaded file info:

 echo count($_FILES);

Update (Based on comments):

You can do this:

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

echo $counter; // get files count

Upvotes: 8

Related Questions