# PHP package for managing Uploaded Files
The HttpSoft\UploadedFile package implements Psr\Http\Message\UploadedFileInterface.
This library provides basic functionality for organizing file uploads based on the PSR-7 HTTP Message recommendation.
This package requires PHP version 7.4 or later.
Package installation:
composer require httpsoft/http-uploaded-file # API
- HttpSoft\UploadedFile\UploadedFile — class, that implements Psr\Http\Message\UploadedFileInterface.
- HttpSoft\UploadedFile\UploadedFileFactory — factory for creating HttpSoft\UploadedFile\UploadedFile, implements Psr\Http\Message\UploadedFileFactoryInterface.
- HttpSoft\UploadedFile\UploadedFileNormalizer — class, that is responsible for normalizing the structure of uploaded files.
# Usage
use HttpSoft\UploadedFile\UploadedFile;
use HttpSoft\UploadedFile\UploadedFileFactory;
use HttpSoft\UploadedFile\UploadedFileNormalizer;
$uploadedFile = new UploadedFile('file.txt', 1024, UPLOAD_ERR_OK);
// equivalently to:
$stream = UploadedFileFactory::create('file.txt', 1024, UPLOAD_ERR_OK);
$uploadedFile->getClientFilename(); // null
$uploadedFile->getClientMediaType(); // null
$uploadedFile->getError(); // 0
$uploadedFile->getSize(); // 1024
// From the item `$_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
// Usage `UploadedFileNormalizer` separately:
print_r($_FILES);
/*
[
'form' => [
'name' => [
'file_1' => 'file.txt',
'file_2' => 'image.png',
],
'type' => [
'file_1' => 'text/plain',
'file_2' => 'image/png',
],
'tmp_name' => [
'file_1' => '/tmp/phpN3FmFr',
'file_2' => '/tmp/phpLs7DaJ',
],
'error' => [
'file_1' => 0,
'file_2' => 0,
],
'size' => [
'file_1' => 1024,
'file_2' => 98174,
],
],
];
*/
print_r(UploadedFileNormalizer::normalize($_FILES));
/*
[
'form' => [
'file_1' => `HttpSoft\UploadedFile\UploadedFile Object`,
'file_2' => `HttpSoft\UploadedFile\UploadedFile Object`,
],
];
*/ Detailed description of using HttpSoft\UploadedFile\UploadedFile see here.
Detailed description of using HttpSoft\UploadedFile\UploadedFileFactory see here.
Detailed description of using HttpSoft\UploadedFile\UploadedFileNormalizer see here.
