В данной статье Вы научитесь создавать свой собственный, простой загрузчик файлов на PHP.
Алгоритм.
Для начала нужно понять, как будет работать сам скрипт, и для этого нужен алгоритм. Алгоритм нашего скрипта будет таким:
- Пользователь открывает страницу, содержащую HTML-форму состоящую из текстовых файлов, кнопки «обзор» и «отправить».
- Пользователь нажимает кнопку обзор и выбирает файл для загрузки с локального диска на компьютере.
- После того, как полный путь к выбранному файлу указан, пользователь нажимает кнопку «Отправить».
- Выбранный файл будет отправлен во временный каталог на сервере.
- Скрипт, указанный в качестве обработчика формы, проверяет выбран ли файл и затем копирует файл в основной каталог.
- Вывод сообщения пользователю.
Создание формы загрузки.
Создайте страницу и поместите туда следующий НТМL код, который и создает форму для загрузки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<html> <head> <title>Загрузка файла</title> </head> <body> <h3>Загрузка файла:</h3> Выберите файл для загрузки: <br /> <form action="/php/file_uploader.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" size="50" /> <br /> <input type="submit" value="Загрузить файл" /> </form> </body> </html> |
- Между тэгами «<title> </title>» — указывается заголовок самой страницы. К форме он не имеет не какого отношения.
- Форма имеет метот «Post«.
- Значение «action» указывает на сам скрипт, которому отправляются данные.
Вид у нашей формы будет такой:
Скрипт загрузки файла.
Существует одна глобальная переменная и называется $_FILES. Эта переменная хранит всю информацию, связанную с загружаемым файлом.
Разберем другие переменные:
- $_FILES[‘file’][‘tmp_name’] — загруженный файл во временной директории на веб-сервере.
- $_FILES[‘file’][‘name’] — имя загружаемого файла.
- $_FILES[‘file’][‘size’] — размер в байтах загруженного файла.
- $_FILES[‘file’][‘type’] — тип загружаемого файла.
- $_FILES[‘file’][‘error’] — код ошибки связанной с файлом.
Код самого скрипта uploader.php, который будет заботиться о загрузке файла и который выводит после информацию пользователю:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
<?php if( $_FILES['file']['name'] != "" ) { copy( $_FILES['file']['name'], "/var/www/html" ) or die( "Не удалось скопировать файл"); } else { die("Не указан файл"); } ?> <html> <head> <title>Загрузка завершена</title> </head> <body> <h2>Информация о файле:</h2> <ul> <li>Файл: <?php echo $_FILES['file']['name']; ?> <li>Размер файла: <?php echo $_FILES['file']['size']; ?> bytes <li>Тип файла: <?php echo $_FILES['file']['type']; ?> </ul> </body> </html> |
Загружаемый файл может быть текстовым файлом или изображением, или даже зловредным кодом. Это важно знать и иметь ввиду при использовании. Изучайте, тестируйте 😉