move_uploaded_file
Переносит загруженный через форму файл в постоянное место.
Синтаксис
move_uploaded_file(string $from, string $to): boolПараметры
| Параметр | Тип | Описание |
|---|---|---|
| $from | string | Временный путь из `$_FILES['…']['tmp_name']`. |
| $to | string | Куда сохранить файл. |
Возвращаемое значение
bool`true` при успехе; `false`, если файл не был загружен через форму.
Примеры
Сохранение загруженной картинки:
<?php
// upload.php
$upload = $_FILES['avatar'];
if ($upload['error'] === UPLOAD_ERR_OK) {
$extension = strtolower(pathinfo($upload['name'], PATHINFO_EXTENSION));
$name = bin2hex(random_bytes(16)) . '.' . $extension;
move_uploaded_file($upload['tmp_name'], __DIR__ . '/uploads/' . $name);
}Примечания
Имя файла всегда создавайте сами и проверяйте расширение по списку разрешённых: имя от посетителя может оказаться shell.php.
См. также
- pathinfo — Разбирает путь на части: папку, имя и расширение.
- is_file — Проверяет, что путь существует и это файл, а не папка.
- random_bytes — Возвращает случайные байты, пригодные для защиты.
Вопросы и ответы по теме
В учебнике
- Загрузка файлов — Как принять файл от пользователя в PHP — форма, массив $_FILES, проверка размера и типа, безопасное сохранение.