Нуб-2 пишет:Почему выводит названия файлов, но не грузит на сервер?
Скорее всего потому, что ваш скрипт ищет файлы там, где их нет. Обратите внимание на эту строку
Спойлер (Отобразить)$tmp_name = $_FILES['userfile']["tmp_name"][$key];
В ней переменная
$key пуста.
Далее, в строке
Спойлер (Отобразить)echo move_uploaded_file($tmp_name, "$uploads_dir/$tmp_name");
оператор
echo явно лишний, а переменная
$tmp_name содержит имена
временных файлов, и я уверен - вам не такой был нужен результат.
Ну и ещё, если вы решили работать с какой-то папкой, то желательно проверять её наличие, а в случае её отсутствия - создавать. С учётом этих замечаний, скрипт будет выглядеть так
Спойлер (Отобразить)PHP:
скопировать код в буфер обмена
<?PHP
$uploads_dir = 'uploads';
if (isset($_POST['upload'])) { $out = [];
for ($i = 0; $i < count($_FILES['userfile']['name']); $i++) { echo 'Файл не загружен';
} else {
$name = $_FILES['userfile']['name'][$i];
$tmp_name = $_FILES['userfile']['tmp_name'][$i];
$new_name = $uploads_dir .'/'. $basename;
$out[] = $basename;
}
}
}
echo 'Загружен(ы) файл(ы):<hr /><b>'. join('<br />', $out) .'</b>'; }
}