PhP загружаем файлы на сервер

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/eddnet.org/html/upload/. Сам загружающий скрипт будет выглядеть так:

<?
$folder = “/var/www/vhosts/eddnet.org/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/eddnet.org/html/upload/ :

move_uploaded_file($HTTP_POST_FILES[‘filename’][‘tmp_name’], $folder.$HTTP_POST_FILES[‘filename’][‘name’])

Случайные Статьи

Loading…


Количество просмотров :6069

2 Comments

  1. «Оставте» пишется как «Оставьте»
    И советую вам поменять фон для блоков кода, иначе он сливается с фоном сайта, воспринимается тяжело.
    А лучше воспользоваться syntax highlighter

    • admin:

      Спасибо, поправил.
      Я про syntax highlighter давно думаю, да все никак руки не дойдут, хотя может и начну сегодня по чуть-чуть переделывать все

Оставьте коментарий