Нуб-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>'; } }
Спойлер (Отобразить)CODE ( html):
скопировать код в буфер обмена
<form id="form" name="upload" action="upload.php" method="POST" enctype="multipart/form-data"> Выберите файл для загрузки: <input type="file" name="userfile[]" multiple> <input type="submit" name="upload" value="Загрузить"> </form>
(Добавление)
И ещё почитайте статьи, как правильно фильтровать принимаемые от пользователя файлы.
|