# Класс HttpSoft\Message\UploadedFile
Абстракция для удобного управления загружаемыми файлами, реализует Psr\Http\Message\UploadedFileInterface.
use HttpSoft\Message\Stream;
use HttpSoft\Message\UploadedFile;
$uploadedFile = new UploadedFile('file.txt', 1024, UPLOAD_ERR_OK);
$uploadedFile->getClientFilename(); // null
$uploadedFile->getClientMediaType(); // null
$uploadedFile->getError(); // 0
$uploadedFile->getSize(); // 1024
$uploadedFile = new UploadedFile('file.txt', 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');
$uploadedFile->getClientFilename(); // 'file.txt'
$uploadedFile->getClientMediaType(); // 'text/plain'
$uploadedFile->getError(); // 0
$uploadedFile->getSize(); // 1024
$uploadedFile->getStream()->getContents(); // Content
$uploadedFile->moveTo('new/path/to/file.txt');
file_get_contents('new/path/to/file.txt'); // Content
// Create from resource:
$resource = fopen('path/to/file', 'wb+');
$uploadedFile = new UploadedFile($resource, 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');
// Create from `StreamInterface` instance:
$stream = new Stream($resource);
$uploadedFile = new UploadedFile($stream, 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain'); # Публичные методы
Оригинальное подробное описание методов смотрите в Psr\Http\Message\UploadedFileInterface.
/**
* @param StreamInterface|string|resource $streamOrFile
* @param int $size
* @param int $error
* @param string|null $clientFilename
* @param string|null $clientMediaType
*/
public function __construct(
$streamOrFile,
int $size,
int $error,
string $clientFilename = null,
string $clientMediaType = null
); # moveTo
Перемещает загруженный файл в новое место. Должен быть вызван только один раз.
/**
* @param string $targetPath
*/
public function moveTo($targetPath): void; Этот метод гарантированно работает как в среде SAPI, так и в среде отличной от SAPI.
Если указанно невалидное значение $targetPath, будет брошено исключение \InvalidArgumentException.
При любой ошибке во время операции перемещения или при повторных вызовах метода будет брошено исключение \RuntimeException.
use HttpSoft\Message\UploadedFile;
$uploadedFile = new UploadedFile('path/to/file.txt', 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');
$uploadedFile->getStream()->getMetadata('uri'); // 'path/to/file.txt'
$uploadedFile->moveTo('new/path/to/new.txt');
$uploadedFile->getSize(); // 1024
$uploadedFile->getError(); // 0
$uploadedFile->getClientFilename(); // 'file.txt'
$uploadedFile->getClientMediaType(); // 'text/plain'
$uploadedFile = new UploadedFile('path/to/file.txt', 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');
$uploadedFile->moveTo('target/path/directory/is/not/writeable'); // throws InvalidArgumentException
$uploadedFile->moveTo('target/path/does/not/exist'); // throws InvalidArgumentException
$uploadedFile = new UploadedFile('path/to/file.txt', 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');
$uploadedFile->moveTo('new/path/to/new.txt'); // Ok
$uploadedFile->moveTo('new/path/to/new.txt'); // throws RuntimeException # getStream
Возвращает экземпляр потока, представляющий загруженный файл. Должен быть вызван перед вызовом метода moveTo().
public function getStream(): StreamInterface; Методы Psr\Http\Message\StreamInterface реализованы в HttpSoft\Message\StreamTrait.
Если метод moveTo() был вызван ранее или в тех случаях, когда поток недоступен или не может быть создан, будет брошено исключение \RuntimeException.
# getSize
Возвращает размер файла в байтах или null, если он неизвестен.
public function getSize(): ?int; Аналогично ключу size файла в глобальном массиве $_FILES.
# getError
Возвращает ошибку, связанную с загруженным файлом.
public function getError(): int; Возвращает значение одной из констант PHP UPLOAD_ERR_XXX.
Если файл был успешно загружен, этот метод должен вернуть UPLOAD_ERR_OK (0).
Аналогично ключу error файла в глобальном массиве $_FILES.
# getClientFilename
Возвращает имя файла, отправленное клиентом или null, если оно не было передано.
public function getClientFilename(): ?string; Аналогично ключу name файла в глобальном массиве $_FILES.
# getClientMediaType
Возвращает медиа тип файла, отправленный клиентом или null, если он не был передан.
public function getClientMediaType(): ?string; Аналогично ключу type файла в глобальном массиве $_FILES.
