Php позволяет вам загружать файлы прямо на сервер используя простую HTML форму. Для того что бы это все работало, вам обязательно необходимо — страница с web формой, загружающий скрипт и папка на сервере с доступом на запись.
Начнем мы с простой HTML формы:
<form action="upload.php" method="post" enctype="multipart/form-data"> File: <input type="file" name="filename" /> <input type="submit" value="Upload" /> </form>
Очень важно, что бы в форме использовался именно метод POST а не GET, так же необходимо указать что мы будем передавать файл, делается это при помощи enctype=»multipart/form-data».
Теперь нам нужно создать папку на сервере и установить на нее права 777. Нам так же понадобиться абсолютный путь к папке, например /var/www/vhosts/teaseo.ru/html/upload/. Сам загружающий скрипт будет выглядеть так:
<? $folder = “/var/www/vhosts/teaseo.ru/html/upload/”; if (is_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'])) { if (move_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'], $folder.$HTTP_POST_FILES['filename']['name'])) { Echo “File uploaded”; } else { Echo “File not moved to destination folder. Check permissions”; }; } else { Echo “File is not uploaded.”; }; ?>
И называться он будет upload.php.
Теперь несколько пояснений. Когда файл будет загружен, ему будет дано временное имя и он будет помещен во временную папку вашего web сервера. Это временное имя доступно используя глобальную масив переменных $HTTP_POST_FILES. В нашей форме в теге input мы присваиваем имя «filename» (<input type=»file» name=»filename» />), значит имя временного файла — $HTTP_POST_FILES[‘filename’][‘tmp_name’]
Настоящее же имя нашего фала находиться в другой переменной — $HTTP_POST_FILES[‘filename’][‘name’]. Теперь, после того, как наш файл попал во временную папку, мы используем функцию move_uploaded_file() что бы переместить его в /var/www/vhosts/teaseo.ru/html/upload/ :
руслан says:
«Оставте» пишется как «Оставьте»
И советую вам поменять фон для блоков кода, иначе он сливается с фоном сайта, воспринимается тяжело.
А лучше воспользоваться syntax highlighter
admin says:
Спасибо, поправил.
Я про syntax highlighter давно думаю, да все никак руки не дойдут, хотя может и начну сегодня по чуть-чуть переделывать все