измените ваш if на этот
if ((($_FILES['multifile']['type'][$key] == "image/png") ||
($_FILES['multifile']['type'][$key] == "image/jpeg") ||
($_FILES['multifile']['type'][$key] == "image/pjpeg")) &&
($_FILES['multifile']['size'][$key] < 2097152))
это делает его читаемым как расширение в порядке И если размер в порядке
Я лично считаю, что если вы используете счетчик, то используйте его таким образом
if(count($_FILES['multifile']['name']) >0)
Также, если возможно, вы можете дать вывод print_r ($ _ FILES ['multifile'])
for($i=0;$i< count($_FILES['multifile']['type']);$i++){
echo "i:".$i."<br/>";
if ((($_FILES['multifile']['type'][$i] == "image/png") ||
($_FILES['multifile']['type'][$i] == "image/jpeg") ||
($_FILES['multifile']['type'][$i] == "image/pjpeg")) &&
($_FILES['multifile']['size'][$i] < 2097152))
{
echo "icond:".$i."<br/>";
$filename = time().'_'.$_FILES['multifile']['name'][$i];
$target = 'uploads/'.$filename;
if(move_uploaded_file ($_FILES['multifile']['tmp_name'][$i],$target))
{
createThumbnail($filename);
echo '<div class="success" style="margin-right:25px;">Images added, view individual album to edit image descriptions</div>';
}
else
{
echo '<div class="error">Invalid file'.$filename.', only jpg, jpeg, or png file types allowed</div>';
}
}
}