Перемещает загруженный файл в новое место

# move_uploaded_file

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

move_uploaded_file — Перемещает загруженный файл в новое место

### Описание

function move_uploaded_file(string `$from`, string `$to`): bool

Эта функция проверяет, является ли файл `from` загруженным на сервер (переданным по протоколу HTTP POST). Если файл действительно загружен на сервер, он будет перемещён в место, указанное в аргументе `to`.

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

### Список параметров

`from`

  Путь к загруженному файлу.

`to`

  Путь, по которому необходимо переместить файл.

### Возвращаемые значения

В случае успешного выполнения возвращает `true`.

Если `from` не является загруженным файлом, никаких действий не предпринимается и move_uploaded_file() возвращает `false`.

Если `from` является загруженным файлом, но не может быть перемещён по каким-либо причинам, никаких действий не предпринимается и move_uploaded_file() возвращает `false`. Кроме того, отображается предупреждение.

### Примеры

Пример #1 Загрузка нескольких файлов

    <?php
    $uploads_dir = '/uploads';
    foreach ($_FILES["pictures"]["error"] as $key => $error) {
        if ($error == UPLOAD_ERR_OK) {
            $tmp_name = $_FILES["pictures"]["tmp_name"][$key];
            // basename() может предотвратить атаку на файловую систему;
            // может быть целесообразным дополнительно проверить имя файла
            $name = basename($_FILES["pictures"]["name"][$key]);
            move_uploaded_file($tmp_name, "$uploads_dir/$name");
        }
    }
    ?>

### Примечания

> Замечание:

> Функция move_uploaded_file() принимает во внимание open_basedir. Тем не менее, ограничения накладываются лишь на параметр `to`, чтобы разрешить перемещение загруженных файлов, так как параметр `from` может конфликтовать с этими ограничениями. move_uploaded_file() гарантирует безопасность этой операции, работая лишь с теми файлами, которые были загружены через PHP.

Внимание

Если результирующий файл уже существует, он будет перезаписан.

### Смотрите также

- is_uploaded_file() - Определяет, был ли файл загружен при помощи HTTP POST
- rename() - Переименовывает файл или директорию
- Простой пример использования этой функции можно найти в разделе "Загрузка файлов на сервер"

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open