Phalcon\Http\Message\UploadedFile
Финальный класс Phalcon\Http\Message\UploadedFile
Пространства имен | Phalcon\Http\Message |
Использует | Phalcon\Helper\Number, Phalcon\Helper\Arr, Phalcon\Helper\Str, Phalcon\Http\Message\Exception\InvalidArgumentException, Psr\Http\Message\StreamInterface, Psr\Http\Message\UploadedFileInterface, RuntimeException |
Реализует | UploadedFileInterface |
PSR-7 UploadedFile
Свойства
/** * Если файл уже был перемещен, мы сохраняем этот статус здесь * * @var bool */ private alreadyMoved = false; /** * Получить имя файла, отправленное клиентом. * * Не доверяйте значению, возвращенному этим методом. * Клиент может отправить вредоносное имя файла с намерением испортить * или взломать ваше приложение. * * Реализации ДОЛЖНЫ возвращать значение, хранящееся в ключе 'name' * файла в массиве $ _FILES. * * @var string | null */ private clientFilename; /** * Получить тип носителя, отправленный клиентом. * * Не доверяйте значению, возвращенному этим методом. Клиент * может отправить вредоносный тип носителя с намерением * испортить или взломать ваше приложение. * * Реализации ДОЛЖНЫ возвращать значение, хранящееся в ключе 'type' * файла в массиве $ _FILES. * * @var string | null */ private clientMediaType; /** * Получить ошибку, связанную с загруженным файлом. * * Возвращаемое значение ДОЛЖНО быть одной из констант PHP UPLOAD_ERR_XXX. * * Если файл был успешно загружен, этот метод ДОЛЖЕН вернуть * UPLOAD_ERR_OK. * * Реализации ДОЛЖНЫ возвращать значение, хранящееся в ключе * 'error' файла в массиве $ _FILES. * * @see http://php.net/manual/en/features.file-upload.errors.php * * @var int */ private error = 0; /** * Если поток является строкой (именем файла), мы сохраняем ее здесь * * @var string */ private fileName = ; /** * Получить размер файла. * * Реализации ДОЛЖНЫ возвращать значение, хранящееся в ключе 'size' * файла в массиве $ _FILES, если оно доступно, поскольку PHP рассчитывает его * на основе фактического переданного размера. * * @var int | null */ private size; /** * Содержит поток / строку для загруженного файла * * @var StreamInterface|string|null */ private stream;
Методы
public function __construct( mixed $stream, int $size = null, int $error = int, string $clientFilename = null, string $clientMediaType = null );
Конструктор
public function getClientFilename(): string | null
public function getClientMediaType(): string | null
public function getError(): int
public function getSize(): int | null
public function getStream(): mixed;
Получить поток, представляющий загруженный файл.
Этот метод ДОЛЖЕН возвращать экземпляр StreamInterface, представляющий загруженный файл. Цель этого метода состоит в том, чтобы позволить использовать встроенную функциональность потока PHP для управления загрузкой файла, такую как stream_copy_to_stream () (хотя результат должен быть оформлен в встроенной оболочке потока PHP для работы с такими функциями).
Если метод moveTo () был вызван ранее, этот метод ДОЛЖЕН вызвать исключение.
public function moveTo( mixed $targetPath ): void;
Переместите загруженный файл в новое место.
Используйте этот метод в качестве альтернативы move_uploaded_file (). Этот метод гарантированно работает как в SAPI, так и в других средах. Реализации должны определить, в какой среде они находятся, и использовать соответствующий метод (move_uploaded_file (), rename () или потоковую операцию) для выполнения операции.
$ targetPath может быть абсолютным или относительным путем. Если это относительный путь, разрешение должно быть таким же, как и в PHP-функции rename ().
Исходный файл или поток ДОЛЖНЫ быть удалены по завершении.
Если этот метод вызывается более одного раза, любые последующие вызовы ДОЛЖНЫ вызывать исключение.
При использовании в среде SAPI, где заполняется $ _FILES, при записи файлов с помощью moveTo () следует использовать is_uploaded_file () и move_uploaded_file (), чтобы гарантировать правильность проверок прав доступа и статуса загрузки.
Если вы хотите перейти к потоку, используйте getStream (), так как операции SAPI не могут гарантировать запись в места назначения потока.
@see http://php.net/is_uploaded_file @see http://php.net/move_uploaded_file