Как загрузить файл на сервер через php

В простейшем случае для загрузки файлов на сервер через php понадобится создать 2 файла на хостинге. Первый будет содержать форму для выбора файла и может быть написан на чистом html. Второй — на php, будет принимать данные из нашей формы и сообщать о результатах.

Код файла с формой index.php:

<!doctype html><html>
<head>

</head>
<body>
<form enctype="multipart/form-data" action="/upload.php" method="POST">
    <!-- MAX_FILE_SIZE -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Имя этого input`а определит имя файла в массиве $_FILES -->
    Выбрать файл: <input name="userfile" type="file" />
    <input type="submit" value="Отправить" />
</form>
</body>
</html>

Код файла upload.php, принимающего данные:

<?php
// В версиях PHP до 4.1.0, надо использовать $HTTP_POST_FILES вместо $_FILES.

$uploaddir = '/home/user/upload/'; //Куда сохраним файлы
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Файл успешно загружен куда надо\n";
} else {
    echo "Загрузить не удалось!\n";
}

// эти две ниже можно раскоментировать:
//echo 'Информация для отладки:';
//print_r($_FILES);

print "</pre>";

?>

Сохранять файлы безопаснее в папке, не доступной через вебсервер (за пределами корневой папки самого сайта, на который выкладываем скрипты .php)

Размер загружаемых файлов может быть ограничен настройками веб-сервера или php.