is_uploaded_file

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

is_uploaded_fileОпределяет, был ли файл загружен при помощи HTTP POST

Описание

is_uploaded_file(string $filename): bool

Возвращает true, если файл filename был загружен при помощи HTTP POST. Это полезно для удостоверения того, что злонамеренный пользователь не пытается обмануть скрипт так, чтобы он работал с файлами, с которыми работать не должен - к примеру, /etc/passwd.

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

Для правильной работы функции is_uploaded_file() нужен аргумент вида $_FILES['userfile']['tmp_name'], - имя загруженного файла на клиентской машине $_FILES['userfile']['name'] не подходит.

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

filename

Имя проверяемого файла.

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

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

Примеры

Пример #1 Пример использования функции is_uploaded_file()

<?php

if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
echo
"Файл ". $_FILES['userfile']['name'] ." успешно загружен.\n";
echo
"Отображаем содержимое\n";
readfile($_FILES['userfile']['tmp_name']);
} else {
echo
"Возможная атака с участием загрузки файла: ";
echo
"файл '". $_FILES['userfile']['tmp_name'] . "'.";
}

?>

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