Учитывая, как вы строите форму, вам придется учесть причуду в том, как PHP создает массив файлов.
foreach($_FILES['userfile']['error'] as $key => $err) {
if ($err === UPLOAD_ERR_OK) {
... got at least one file ...
}
}
По какой-то идиотской причине вместо хранения данных загрузки каждого файлав своем собственном отдельном подмассиве в $_FILES
PHP предпочитает вместо этого распределять каждую отдельную ошибку / имя / tmp_name / etc ... по обычным категориям, например, так:
$_FILES = array(
'userfile' => array(
'name' => array(
0 => 'name of file #1'
1 => "name of file #2'
etc...
),
'tmp_name' => array(
0 => 'temp name of file #1'
1 => 'temp name of file #2'
etc.. etc... etc..
)
);
Гораздо разумнеепонятная версия была бы
$_FILES = array(
'userfile' => array(
0 => array(
'name' => 'name of file #1'
'tmp_name' => 'temp name of file #1'
...
),
1 => array(
'name' => 'name of file #2'
'tmp_name' => 'temp name of file #2'
...
, но, увы, PHP снова обременял мир чрезмерно запутанной и громоздкой глупостью.