Пока я творю, я живу!
Блог посвящен: HTML, CSS, PHP, Wordpress, Bootstrap
Всем привет!
Продолжаем изучать основы PHP с нуля! В этом уроке я расскажу вам про возможность отправлять файлы на сервер. Конечно, использовать этот код на практике не рекомендую, так как дополнительно должны быть включены проверки для безопасной отправки файла на сервер.
Для отправки файлов на сервер я буду использовать стандартную HTML форму и функцию для перемещения файлов на новое место - move_uploaded_file().
Синтаксис:
move_uploaded_file (filename , destination )
filename - Путь к загруженному файлу
destination - Путь, по которому необходимо переместить файл
Функция move_uploaded_file проверяет, является ли файл «filename» загруженным на сервер по протоколу HTTP POST. Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе «destination». Вроде как ничего сложного и все понятно.
Перейдем к практике.
Стандартная HTML форма:
<form method="post" action="" enctype="multipart/form-data"> <input type="hidden" name="formsFail" value="ok" /> <input type="file" name="uploadfile"> <input type="submit" value="Загрузить файл"> </form>
В атрибуте «enctype» значение «multipart/form-data» определяет, что в данной форме будет выполнена отправка файла.
И сам PHP скрипт с маленькой проверкой:
<?php if(isset($_POST['formsFail'])) //проверка на отправленную форму { // указание директории и имени нового файла на сервере $new_file = __DIR__ . '/uploads/'.$_FILES['uploadfile']['name']; // Перемещает загруженный файл в указанное место move_uploaded_file($_FILES['uploadfile']['tmp_name'], $new_file); echo "всё, файл у Вас в папке - uploads"; } ?>
__DIR__ - Это константа. Определяет директорию файла.
Создайте рядом с php файлом со скриптом папку «uploads», так как в коде (строка №5) я указал, что файл будет перемещен из формы в папку «uploads».
Если хотите, чтобы файл сразу перемещался туда, где скрипт, то просто отредактируйте строку №5:
<?php if(isset($_POST['formsFail'])) //проверка на отправленную форму { // указание директории и имени нового файла на сервере $new_file = $_FILES['uploadfile']['name']; // Перемещает загруженный файл в указанное место move_uploaded_file($_FILES['uploadfile']['tmp_name'], $new_file); echo "всё, файл у Вас в папке - uploads"; } ?>
Пробуйте. Должно получиться!!!
Вот мой результат (для скептиков ):
1). в браузере загрузил файл:
2). Вот файл на сервере в папке «uploads»:
3). Открыл папку «uploads» для полного подтверждения :
На сегодня все!
Подписывайтесь на обновления блога stepkinblog.ru, если не хотите пропустить уроки по основам PHP!
Ответить