Загрузка файла на сервер

Шаг 1: Форма

Сначала надо добавить форму загрузки файла:

<form enctype="multipart/form-data" action="handler.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000">
    <p><input name="userfile" type="file"></p>
    <p><input type="submit" value="Send File"></p>
</form>

В этой форме надо обязательно указать атрибут enctype="multipart/form-data", иначе файлы не будут передаваться через форму.

Также можно указать элемент формы с именем MAX_FILE_SIZE (обязательно перед элементом формы загрузки файла), где указывается допустимый размер загрузки файла. В первую очередь данный элемент нужен для того, чтобы сразу предупредить посетителя о превышении размера файла, не дожидаясь, пока сам файл не загрузится.

Шаг 2: Загрузка файла

Файл загружается через функцию move_uploaded_file().

if (isset($_FILES['userfile'])) {

    // Папка для загрузки файлов
    $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/uploads/';

    // Загрузка файла
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $upload_dir.$_FILES['userfile']['name'])) {
        echo '<p>Файл успешно загружен</p>';
    }

}

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