# Класс HttpSoft\UploadedFile\UploadedFileFactory

Фабрика для создания HttpSoft\UploadedFile\UploadedFile, реализует Psr\Http\Message\UploadedFileFactoryInterface.

Исходный код на GitHub.

use HttpSoft\Stream\Stream;
use HttpSoft\UploadedFile\UploadedFileFactory;

$factory = new UploadedFileFactory();
$stream = new Stream('/tmp/phpN3FmFr', 'wb+');
$uploadedFile = $factory->createUploadedFile($stream, 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');
// эквивалентно:
$uploadedFile = UploadedFileFactory::create($stream, 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');

// Из существующего файла:
$uploadedFile = UploadedFileFactory::create('/tmp/phpN3FmFr', 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');
// Из существующего ресурса:
$resource = fopen('path/to/file', 'wb+');
$uploadedFile = UploadedFileFactory::create($resource, 1024, UPLOAD_ERR_OK, 'file.txt', 'text/plain');

// Из элемента `$_FILES`:
$uploadedFile = UploadedFileFactory::createFromArray([
    'name' => 'file.txt',
    'type' => 'text/plain',
    'tmp_name' => '/tmp/phpN3FmFr',
    'error' => UPLOAD_ERR_OK,
    'size' => 1024,
]);

$uploadedFile->getClientFilename(); // 'file.txt'
$uploadedFile->getClientMediaType(); // 'text/plain'
$uploadedFile->getStream()->getMetadata('uri'); // '/tmp/phpN3FmFr'
$uploadedFile->getError(); // 0
$uploadedFile->getSize(); // 1024

# Публичные методы

Оригинальное подробное описание методов смотрите в Psr\Http\Message\UploadedFileFactoryInterface.

# create

Создает новый экземпляр HttpSoft\UploadedFile\UploadedFile (статический метод).

/**
 * @param StreamInterface|string|resource $streamOrFile
 * @param int $size
 * @param int $error
 * @param string|null $clientFilename
 * @param string|null $clientMediaType
 * @return UploadedFileInterface
 */
public static function create(
    $streamOrFile,
    int $size,
    int $error,
    string $clientFilename = null,
    string $clientMediaType = null
): UploadedFileInterface;

# createFromArray

Создает новый экземпляр HttpSoft\UploadedFile\UploadedFile из массива (статический метод).

public static function createFromArray(array $file): UploadedFileInterface;

Создает экземпляр Psr\Http\Message\UploadedFileInterface из одномерного массива $file. Структура массива должна быть такой же, как и элемент в глобальном массиве $_FILES.

// Пример структуры массива:
[
    'name' => 'filename.jpg', // необязательный
    'type' => 'image/jpeg', // необязательный
    'tmp_name' => '/tmp/php/php6hst32',
    'error' => 0, // UPLOAD_ERR_OK
    'size' => 98174,
];

Подробнее о структуре загружаемых файлов смотрите здесь.

# createUploadedFile

Создает новый экземпляр HttpSoft\UploadedFile\UploadedFile.

/**
 * @param StreamInterface $stream
 * @param int|null $size
 * @param int $error
 * @param string|null $clientFilename
 * @param string|null $clientMediaType
 * @return UploadedFileInterface
 */
public function createUploadedFile(
    StreamInterface $stream,
    int $size = null,
    int $error = UPLOAD_ERR_OK,
    string $clientFilename = null,
    string $clientMediaType = null
): UploadedFileInterface;